From da5e8e5524074c06b5ae2d0fee0a63f415877e12 Mon Sep 17 00:00:00 2001 From: Kris Kwiatkowski Date: Wed, 3 Mar 2021 06:50:25 +0000 Subject: [PATCH] Use CMake --- .cmake/common.mk | 54 + CMakeLists.txt | 434 +- README.md | 135 +- common/keccak4x/Makefile.Microsoft_nmake | 8 - .../frodo/frodokem1344shake/clean/LICENSE | 21 - .../clean/Makefile.Microsoft_nmake | 19 - .../frodo/frodokem1344shake/clean/api.h | 20 - .../frodo/frodokem1344shake/clean/common.h | 21 - .../frodo/frodokem1344shake/clean/kem.c | 237 - .../frodokem1344shake/clean/matrix_shake.c | 79 - .../frodo/frodokem1344shake/clean/noise.c | 35 - .../frodo/frodokem1344shake/clean/params.h | 27 - .../frodo/frodokem1344shake/clean/util.c | 264 - .../frodo/frodokem1344shake/opt/LICENSE | 21 - .../opt/Makefile.Microsoft_nmake | 19 - .../frodo/frodokem640shake/clean/LICENSE | 21 - .../clean/Makefile.Microsoft_nmake | 19 - crypto_kem/frodo/frodokem640shake/clean/api.h | 20 - .../frodo/frodokem640shake/clean/common.h | 21 - crypto_kem/frodo/frodokem640shake/clean/kem.c | 237 - .../frodokem640shake/clean/matrix_shake.c | 79 - .../frodo/frodokem640shake/clean/noise.c | 35 - .../frodo/frodokem640shake/clean/params.h | 27 - .../frodo/frodokem640shake/clean/util.c | 264 - crypto_kem/frodo/frodokem640shake/opt/LICENSE | 21 - .../opt/Makefile.Microsoft_nmake | 19 - .../frodo/frodokem976shake/clean/LICENSE | 21 - .../clean/Makefile.Microsoft_nmake | 19 - crypto_kem/frodo/frodokem976shake/clean/api.h | 20 - .../frodo/frodokem976shake/clean/common.h | 21 - crypto_kem/frodo/frodokem976shake/clean/kem.c | 237 - .../frodokem976shake/clean/matrix_shake.c | 79 - .../frodo/frodokem976shake/clean/noise.c | 35 - .../frodo/frodokem976shake/clean/params.h | 27 - .../frodo/frodokem976shake/clean/util.c | 264 - crypto_kem/frodo/frodokem976shake/opt/LICENSE | 21 - .../opt/Makefile.Microsoft_nmake | 19 - crypto_kem/kyber/kyber1024/avx2/LICENSE | 5 - crypto_kem/kyber/kyber1024/clean/LICENSE | 5 - .../kyber1024/clean/Makefile.Microsoft_nmake | 23 - crypto_kem/kyber/kyber512/avx2/LICENSE | 5 - crypto_kem/kyber/kyber512/clean/LICENSE | 5 - .../kyber512/clean/Makefile.Microsoft_nmake | 23 - crypto_kem/kyber/kyber768/avx2/LICENSE | 5 - crypto_kem/kyber/kyber768/clean/LICENSE | 5 - .../kyber768/clean/Makefile.Microsoft_nmake | 23 - .../mceliece/mceliece348864/avx/LICENSE | 16 - .../mceliece/mceliece348864/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece348864/sse/LICENSE | 16 - .../mceliece/mceliece348864/sse/aes256ctr.c | 13 - .../mceliece/mceliece348864/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece348864/sse/api.h | 32 - .../mceliece/mceliece348864/sse/benes.c | 287 - .../mceliece/mceliece348864/sse/benes.h | 15 - crypto_kem/mceliece/mceliece348864/sse/bm.c | 220 - crypto_kem/mceliece/mceliece348864/sse/bm.h | 17 - .../mceliece/mceliece348864/sse/consts.S | 32 - .../mceliece/mceliece348864/sse/consts.inc | 448 - .../mceliece/mceliece348864/sse/controlbits.c | 274 - .../mceliece/mceliece348864/sse/controlbits.h | 15 - .../mceliece/mceliece348864/sse/crypto_hash.h | 7 - .../mceliece/mceliece348864/sse/decrypt.c | 203 - .../mceliece/mceliece348864/sse/decrypt.h | 10 - .../mceliece/mceliece348864/sse/encrypt.c | 99 - .../mceliece/mceliece348864/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece348864/sse/fft.c | 155 - crypto_kem/mceliece/mceliece348864/sse/fft.h | 17 - .../mceliece/mceliece348864/sse/fft_tr.c | 312 - .../mceliece/mceliece348864/sse/fft_tr.h | 13 - crypto_kem/mceliece/mceliece348864/sse/gf.c | 169 - crypto_kem/mceliece/mceliece348864/sse/gf.h | 26 - .../mceliece/mceliece348864/sse/operations.c | 136 - .../mceliece/mceliece348864/sse/params.h | 21 - .../mceliece/mceliece348864/sse/pk_gen.c | 329 - .../mceliece/mceliece348864/sse/pk_gen.h | 13 - .../mceliece/mceliece348864/sse/powers.inc | 448 - .../mceliece348864/sse/scalars_2x.inc | 70 - .../mceliece/mceliece348864/sse/sk_gen.c | 98 - .../mceliece/mceliece348864/sse/sk_gen.h | 16 - .../mceliece348864/sse/syndrome_asm.S | 740 -- .../mceliece/mceliece348864/sse/transpose.c | 12 - .../mceliece/mceliece348864/sse/transpose.h | 16 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece348864/sse/transpose_64x64_asm.S | 8467 ----------------- .../mceliece/mceliece348864/sse/update_asm.S | 354 - crypto_kem/mceliece/mceliece348864/sse/util.c | 106 - crypto_kem/mceliece/mceliece348864/sse/util.h | 33 - crypto_kem/mceliece/mceliece348864/sse/vec.c | 17 - crypto_kem/mceliece/mceliece348864/sse/vec.h | 11 - .../mceliece/mceliece348864/sse/vec128.c | 143 - .../mceliece/mceliece348864/sse/vec128.h | 42 - .../mceliece348864/sse/vec128_mul_asm.S | 1736 ---- .../mceliece/mceliece348864/sse/vec_mul_asm.S | 1515 --- .../mceliece348864/sse/vec_reduce_asm.S | 356 - .../mceliece/mceliece348864/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece348864/vec/aes256ctr.c | 13 - .../mceliece/mceliece348864/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece348864/vec/api.h | 32 - .../mceliece/mceliece348864/vec/benes.c | 95 - .../mceliece/mceliece348864/vec/benes.h | 12 - crypto_kem/mceliece/mceliece348864/vec/bm.c | 247 - crypto_kem/mceliece/mceliece348864/vec/bm.h | 16 - .../mceliece/mceliece348864/vec/consts.inc | 888 -- .../mceliece/mceliece348864/vec/controlbits.c | 274 - .../mceliece/mceliece348864/vec/controlbits.h | 15 - .../mceliece/mceliece348864/vec/crypto_hash.h | 7 - .../mceliece/mceliece348864/vec/decrypt.c | 191 - .../mceliece/mceliece348864/vec/decrypt.h | 10 - .../mceliece/mceliece348864/vec/encrypt.c | 135 - .../mceliece/mceliece348864/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece348864/vec/fft.c | 113 - crypto_kem/mceliece/mceliece348864/vec/fft.h | 15 - .../mceliece/mceliece348864/vec/fft_tr.c | 268 - .../mceliece/mceliece348864/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece348864/vec/gf.c | 169 - crypto_kem/mceliece/mceliece348864/vec/gf.h | 26 - .../mceliece/mceliece348864/vec/operations.c | 136 - .../mceliece/mceliece348864/vec/params.h | 21 - .../mceliece/mceliece348864/vec/pk_gen.c | 238 - .../mceliece/mceliece348864/vec/pk_gen.h | 13 - .../mceliece/mceliece348864/vec/powers.inc | 896 -- .../mceliece/mceliece348864/vec/scalars.inc | 70 - .../mceliece348864/vec/scalars_2x.inc | 140 - .../mceliece/mceliece348864/vec/sk_gen.c | 98 - .../mceliece/mceliece348864/vec/sk_gen.h | 16 - .../mceliece/mceliece348864/vec/transpose.c | 35 - .../mceliece/mceliece348864/vec/transpose.h | 14 - crypto_kem/mceliece/mceliece348864/vec/util.c | 94 - crypto_kem/mceliece/mceliece348864/vec/util.h | 29 - crypto_kem/mceliece/mceliece348864/vec/vec.c | 131 - crypto_kem/mceliece/mceliece348864/vec/vec.h | 25 - .../mceliece/mceliece348864f/avx/LICENSE | 16 - .../mceliece/mceliece348864f/avx/scalars.inc | 70 - .../mceliece/mceliece348864f/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece348864f/sse/LICENSE | 16 - .../mceliece/mceliece348864f/sse/aes256ctr.c | 13 - .../mceliece/mceliece348864f/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece348864f/sse/api.h | 33 - .../mceliece/mceliece348864f/sse/benes.c | 287 - .../mceliece/mceliece348864f/sse/benes.h | 15 - crypto_kem/mceliece/mceliece348864f/sse/bm.c | 220 - crypto_kem/mceliece/mceliece348864f/sse/bm.h | 17 - .../mceliece/mceliece348864f/sse/consts.S | 32 - .../mceliece/mceliece348864f/sse/consts.inc | 448 - .../mceliece348864f/sse/controlbits.c | 274 - .../mceliece348864f/sse/controlbits.h | 15 - .../mceliece348864f/sse/crypto_hash.h | 7 - .../mceliece/mceliece348864f/sse/decrypt.c | 203 - .../mceliece/mceliece348864f/sse/decrypt.h | 10 - .../mceliece/mceliece348864f/sse/encrypt.c | 99 - .../mceliece/mceliece348864f/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece348864f/sse/fft.c | 155 - crypto_kem/mceliece/mceliece348864f/sse/fft.h | 17 - .../mceliece/mceliece348864f/sse/fft_tr.c | 312 - .../mceliece/mceliece348864f/sse/fft_tr.h | 13 - crypto_kem/mceliece/mceliece348864f/sse/gf.c | 169 - crypto_kem/mceliece/mceliece348864f/sse/gf.h | 26 - .../mceliece/mceliece348864f/sse/operations.c | 136 - .../mceliece/mceliece348864f/sse/params.h | 21 - .../mceliece/mceliece348864f/sse/pk_gen.c | 329 - .../mceliece/mceliece348864f/sse/pk_gen.h | 13 - .../mceliece/mceliece348864f/sse/powers.inc | 448 - .../mceliece/mceliece348864f/sse/scalars.inc | 70 - .../mceliece348864f/sse/scalars_2x.inc | 70 - .../mceliece/mceliece348864f/sse/sk_gen.c | 98 - .../mceliece/mceliece348864f/sse/sk_gen.h | 16 - .../mceliece348864f/sse/syndrome_asm.S | 740 -- .../mceliece/mceliece348864f/sse/transpose.c | 12 - .../mceliece/mceliece348864f/sse/transpose.h | 16 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece348864f/sse/transpose_64x64_asm.S | 8467 ----------------- .../mceliece/mceliece348864f/sse/update_asm.S | 354 - .../mceliece/mceliece348864f/sse/util.c | 106 - .../mceliece/mceliece348864f/sse/util.h | 33 - crypto_kem/mceliece/mceliece348864f/sse/vec.c | 17 - crypto_kem/mceliece/mceliece348864f/sse/vec.h | 11 - .../mceliece/mceliece348864f/sse/vec128.c | 143 - .../mceliece/mceliece348864f/sse/vec128.h | 42 - .../mceliece348864f/sse/vec128_mul_asm.S | 1736 ---- .../mceliece348864f/sse/vec_mul_asm.S | 1515 --- .../mceliece348864f/sse/vec_reduce_asm.S | 356 - .../mceliece/mceliece348864f/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece348864f/vec/aes256ctr.c | 13 - .../mceliece/mceliece348864f/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece348864f/vec/api.h | 33 - .../mceliece/mceliece348864f/vec/benes.c | 95 - .../mceliece/mceliece348864f/vec/benes.h | 12 - crypto_kem/mceliece/mceliece348864f/vec/bm.c | 247 - crypto_kem/mceliece/mceliece348864f/vec/bm.h | 16 - .../mceliece/mceliece348864f/vec/consts.inc | 888 -- .../mceliece348864f/vec/controlbits.c | 274 - .../mceliece348864f/vec/controlbits.h | 15 - .../mceliece348864f/vec/crypto_hash.h | 7 - .../mceliece/mceliece348864f/vec/decrypt.c | 191 - .../mceliece/mceliece348864f/vec/decrypt.h | 10 - .../mceliece/mceliece348864f/vec/encrypt.c | 135 - .../mceliece/mceliece348864f/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece348864f/vec/fft.c | 113 - crypto_kem/mceliece/mceliece348864f/vec/fft.h | 15 - .../mceliece/mceliece348864f/vec/fft_tr.c | 268 - .../mceliece/mceliece348864f/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece348864f/vec/gf.c | 169 - crypto_kem/mceliece/mceliece348864f/vec/gf.h | 26 - .../mceliece/mceliece348864f/vec/operations.c | 136 - .../mceliece/mceliece348864f/vec/params.h | 21 - .../mceliece/mceliece348864f/vec/pk_gen.c | 317 - .../mceliece/mceliece348864f/vec/pk_gen.h | 13 - .../mceliece/mceliece348864f/vec/powers.inc | 896 -- .../mceliece/mceliece348864f/vec/scalars.inc | 70 - .../mceliece348864f/vec/scalars_2x.inc | 140 - .../mceliece/mceliece348864f/vec/sk_gen.c | 98 - .../mceliece/mceliece348864f/vec/sk_gen.h | 16 - .../mceliece/mceliece348864f/vec/transpose.c | 35 - .../mceliece/mceliece348864f/vec/transpose.h | 14 - .../mceliece/mceliece348864f/vec/util.c | 94 - .../mceliece/mceliece348864f/vec/util.h | 30 - crypto_kem/mceliece/mceliece348864f/vec/vec.c | 131 - crypto_kem/mceliece/mceliece348864f/vec/vec.h | 25 - .../mceliece/mceliece460896/avx/LICENSE | 16 - .../mceliece/mceliece460896/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece460896/sse/LICENSE | 16 - .../mceliece/mceliece460896/sse/aes256ctr.c | 13 - .../mceliece/mceliece460896/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece460896/sse/api.h | 31 - .../mceliece/mceliece460896/sse/benes.c | 311 - .../mceliece/mceliece460896/sse/benes.h | 15 - crypto_kem/mceliece/mceliece460896/sse/bm.c | 204 - crypto_kem/mceliece/mceliece460896/sse/bm.h | 15 - .../mceliece/mceliece460896/sse/consts.S | 32 - .../mceliece/mceliece460896/sse/consts.inc | 967 -- .../mceliece/mceliece460896/sse/controlbits.c | 274 - .../mceliece/mceliece460896/sse/controlbits.h | 15 - .../mceliece/mceliece460896/sse/crypto_hash.h | 7 - .../mceliece/mceliece460896/sse/decrypt.c | 204 - .../mceliece/mceliece460896/sse/decrypt.h | 10 - .../mceliece/mceliece460896/sse/encrypt.c | 100 - .../mceliece/mceliece460896/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece460896/sse/fft.c | 231 - crypto_kem/mceliece/mceliece460896/sse/fft.h | 16 - .../mceliece/mceliece460896/sse/fft_tr.c | 354 - .../mceliece/mceliece460896/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece460896/sse/gf.c | 205 - crypto_kem/mceliece/mceliece460896/sse/gf.h | 22 - .../mceliece/mceliece460896/sse/operations.c | 136 - .../mceliece/mceliece460896/sse/params.h | 21 - .../mceliece/mceliece460896/sse/pk_gen.c | 273 - .../mceliece/mceliece460896/sse/pk_gen.h | 12 - .../mceliece460896/sse/scalars_2x.inc | 75 - .../mceliece460896/sse/scalars_4x.inc | 181 - .../mceliece/mceliece460896/sse/sk_gen.c | 98 - .../mceliece/mceliece460896/sse/sk_gen.h | 16 - .../mceliece460896/sse/syndrome_asm.S | 960 -- .../mceliece/mceliece460896/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece/mceliece460896/sse/update_asm.S | 511 - crypto_kem/mceliece/mceliece460896/sse/util.c | 106 - crypto_kem/mceliece/mceliece460896/sse/util.h | 23 - .../mceliece/mceliece460896/sse/vec128.c | 152 - .../mceliece/mceliece460896/sse/vec128.h | 43 - .../mceliece460896/sse/vec128_mul_asm.S | 2127 ----- .../mceliece460896/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece460896/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece460896/vec/aes256ctr.c | 13 - .../mceliece/mceliece460896/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece460896/vec/api.h | 31 - .../mceliece/mceliece460896/vec/benes.c | 147 - .../mceliece/mceliece460896/vec/benes.h | 12 - crypto_kem/mceliece/mceliece460896/vec/bm.c | 238 - crypto_kem/mceliece/mceliece460896/vec/bm.h | 16 - .../mceliece/mceliece460896/vec/consts.inc | 1920 ---- .../mceliece/mceliece460896/vec/controlbits.c | 274 - .../mceliece/mceliece460896/vec/controlbits.h | 15 - .../mceliece/mceliece460896/vec/crypto_hash.h | 7 - .../mceliece/mceliece460896/vec/decrypt.c | 191 - .../mceliece/mceliece460896/vec/decrypt.h | 10 - .../mceliece/mceliece460896/vec/encrypt.c | 138 - .../mceliece/mceliece460896/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece460896/vec/fft.c | 269 - crypto_kem/mceliece/mceliece460896/vec/fft.h | 16 - .../mceliece/mceliece460896/vec/fft_tr.c | 299 - .../mceliece/mceliece460896/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece460896/vec/gf.c | 205 - crypto_kem/mceliece/mceliece460896/vec/gf.h | 22 - .../mceliece/mceliece460896/vec/operations.c | 136 - .../mceliece/mceliece460896/vec/params.h | 21 - .../mceliece/mceliece460896/vec/pk_gen.c | 250 - .../mceliece/mceliece460896/vec/pk_gen.h | 13 - .../mceliece460896/vec/scalars_2x.inc | 150 - .../mceliece460896/vec/scalars_4x.inc | 360 - .../mceliece/mceliece460896/vec/sk_gen.c | 98 - .../mceliece/mceliece460896/vec/sk_gen.h | 16 - .../mceliece/mceliece460896/vec/transpose.c | 35 - .../mceliece/mceliece460896/vec/transpose.h | 14 - crypto_kem/mceliece/mceliece460896/vec/util.c | 97 - crypto_kem/mceliece/mceliece460896/vec/util.h | 26 - crypto_kem/mceliece/mceliece460896/vec/vec.c | 139 - crypto_kem/mceliece/mceliece460896/vec/vec.h | 25 - .../mceliece/mceliece460896f/avx/LICENSE | 16 - .../mceliece/mceliece460896f/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece460896f/sse/LICENSE | 16 - .../mceliece/mceliece460896f/sse/aes256ctr.c | 13 - .../mceliece/mceliece460896f/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece460896f/sse/api.h | 31 - .../mceliece/mceliece460896f/sse/benes.c | 311 - .../mceliece/mceliece460896f/sse/benes.h | 14 - crypto_kem/mceliece/mceliece460896f/sse/bm.c | 204 - crypto_kem/mceliece/mceliece460896f/sse/bm.h | 15 - .../mceliece/mceliece460896f/sse/consts.S | 32 - .../mceliece/mceliece460896f/sse/consts.inc | 967 -- .../mceliece460896f/sse/controlbits.c | 274 - .../mceliece460896f/sse/controlbits.h | 15 - .../mceliece460896f/sse/crypto_hash.h | 7 - .../mceliece/mceliece460896f/sse/decrypt.c | 204 - .../mceliece/mceliece460896f/sse/decrypt.h | 10 - .../mceliece/mceliece460896f/sse/encrypt.c | 100 - .../mceliece/mceliece460896f/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece460896f/sse/fft.c | 231 - crypto_kem/mceliece/mceliece460896f/sse/fft.h | 16 - .../mceliece/mceliece460896f/sse/fft_tr.c | 354 - .../mceliece/mceliece460896f/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece460896f/sse/gf.c | 205 - crypto_kem/mceliece/mceliece460896f/sse/gf.h | 22 - .../mceliece/mceliece460896f/sse/operations.c | 136 - .../mceliece/mceliece460896f/sse/params.h | 21 - .../mceliece/mceliece460896f/sse/pk_gen.c | 344 - .../mceliece/mceliece460896f/sse/pk_gen.h | 12 - .../mceliece460896f/sse/scalars_2x.inc | 75 - .../mceliece460896f/sse/scalars_4x.inc | 181 - .../mceliece/mceliece460896f/sse/sk_gen.c | 98 - .../mceliece/mceliece460896f/sse/sk_gen.h | 16 - .../mceliece460896f/sse/syndrome_asm.S | 960 -- .../mceliece/mceliece460896f/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece/mceliece460896f/sse/update_asm.S | 511 - .../mceliece/mceliece460896f/sse/util.c | 106 - .../mceliece/mceliece460896f/sse/util.h | 23 - .../mceliece/mceliece460896f/sse/vec128.c | 152 - .../mceliece/mceliece460896f/sse/vec128.h | 43 - .../mceliece460896f/sse/vec128_mul_asm.S | 2127 ----- .../mceliece460896f/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece460896f/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece460896f/vec/aes256ctr.c | 13 - .../mceliece/mceliece460896f/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece460896f/vec/api.h | 31 - .../mceliece/mceliece460896f/vec/benes.c | 147 - .../mceliece/mceliece460896f/vec/benes.h | 12 - crypto_kem/mceliece/mceliece460896f/vec/bm.c | 238 - crypto_kem/mceliece/mceliece460896f/vec/bm.h | 16 - .../mceliece/mceliece460896f/vec/consts.inc | 1920 ---- .../mceliece460896f/vec/controlbits.c | 274 - .../mceliece460896f/vec/controlbits.h | 15 - .../mceliece460896f/vec/crypto_hash.h | 7 - .../mceliece/mceliece460896f/vec/decrypt.c | 191 - .../mceliece/mceliece460896f/vec/decrypt.h | 10 - .../mceliece/mceliece460896f/vec/encrypt.c | 138 - .../mceliece/mceliece460896f/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece460896f/vec/fft.c | 269 - crypto_kem/mceliece/mceliece460896f/vec/fft.h | 16 - .../mceliece/mceliece460896f/vec/fft_tr.c | 299 - .../mceliece/mceliece460896f/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece460896f/vec/gf.c | 205 - crypto_kem/mceliece/mceliece460896f/vec/gf.h | 22 - .../mceliece/mceliece460896f/vec/operations.c | 136 - .../mceliece/mceliece460896f/vec/params.h | 21 - .../mceliece/mceliece460896f/vec/pk_gen.c | 301 - .../mceliece/mceliece460896f/vec/pk_gen.h | 13 - .../mceliece460896f/vec/scalars_2x.inc | 150 - .../mceliece460896f/vec/scalars_4x.inc | 360 - .../mceliece/mceliece460896f/vec/sk_gen.c | 98 - .../mceliece/mceliece460896f/vec/sk_gen.h | 16 - .../mceliece/mceliece460896f/vec/transpose.c | 35 - .../mceliece/mceliece460896f/vec/transpose.h | 14 - .../mceliece/mceliece460896f/vec/util.c | 97 - .../mceliece/mceliece460896f/vec/util.h | 27 - crypto_kem/mceliece/mceliece460896f/vec/vec.c | 139 - crypto_kem/mceliece/mceliece460896f/vec/vec.h | 25 - .../mceliece/mceliece6688128/avx/LICENSE | 16 - .../mceliece/mceliece6688128/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece6688128/sse/LICENSE | 16 - .../mceliece/mceliece6688128/sse/aes256ctr.c | 13 - .../mceliece/mceliece6688128/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece6688128/sse/api.h | 32 - .../mceliece/mceliece6688128/sse/benes.c | 311 - .../mceliece/mceliece6688128/sse/benes.h | 14 - crypto_kem/mceliece/mceliece6688128/sse/bm.c | 208 - crypto_kem/mceliece/mceliece6688128/sse/bm.h | 15 - .../mceliece/mceliece6688128/sse/consts.S | 32 - .../mceliece/mceliece6688128/sse/consts.inc | 967 -- .../mceliece6688128/sse/controlbits.c | 274 - .../mceliece6688128/sse/controlbits.h | 15 - .../mceliece6688128/sse/crypto_hash.h | 7 - .../mceliece/mceliece6688128/sse/decrypt.c | 204 - .../mceliece/mceliece6688128/sse/decrypt.h | 10 - .../mceliece/mceliece6688128/sse/encrypt.c | 105 - .../mceliece/mceliece6688128/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece6688128/sse/fft.c | 243 - crypto_kem/mceliece/mceliece6688128/sse/fft.h | 16 - .../mceliece/mceliece6688128/sse/fft_tr.c | 338 - .../mceliece/mceliece6688128/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6688128/sse/gf.c | 236 - crypto_kem/mceliece/mceliece6688128/sse/gf.h | 21 - .../mceliece/mceliece6688128/sse/operations.c | 136 - .../mceliece/mceliece6688128/sse/params.h | 21 - .../mceliece/mceliece6688128/sse/pk_gen.c | 258 - .../mceliece/mceliece6688128/sse/pk_gen.h | 12 - .../mceliece/mceliece6688128/sse/powers.inc | 960 -- .../mceliece6688128/sse/scalars_2x.inc | 75 - .../mceliece6688128/sse/scalars_4x.inc | 181 - .../mceliece/mceliece6688128/sse/sk_gen.c | 98 - .../mceliece/mceliece6688128/sse/sk_gen.h | 16 - .../mceliece6688128/sse/syndrome_asm.S | 1260 --- .../mceliece/mceliece6688128/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece/mceliece6688128/sse/update_asm.S | 511 - .../mceliece/mceliece6688128/sse/util.c | 106 - .../mceliece/mceliece6688128/sse/util.h | 23 - .../mceliece/mceliece6688128/sse/vec128.c | 152 - .../mceliece/mceliece6688128/sse/vec128.h | 43 - .../mceliece6688128/sse/vec128_mul_asm.S | 2127 ----- .../mceliece6688128/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece6688128/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece6688128/vec/aes256ctr.c | 13 - .../mceliece/mceliece6688128/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece6688128/vec/api.h | 32 - .../mceliece/mceliece6688128/vec/benes.c | 147 - .../mceliece/mceliece6688128/vec/benes.h | 12 - crypto_kem/mceliece/mceliece6688128/vec/bm.c | 245 - crypto_kem/mceliece/mceliece6688128/vec/bm.h | 16 - .../mceliece/mceliece6688128/vec/consts.inc | 1920 ---- .../mceliece6688128/vec/controlbits.c | 274 - .../mceliece6688128/vec/controlbits.h | 15 - .../mceliece6688128/vec/crypto_hash.h | 7 - .../mceliece/mceliece6688128/vec/decrypt.c | 191 - .../mceliece/mceliece6688128/vec/decrypt.h | 10 - .../mceliece/mceliece6688128/vec/encrypt.c | 142 - .../mceliece/mceliece6688128/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece6688128/vec/fft.c | 274 - crypto_kem/mceliece/mceliece6688128/vec/fft.h | 16 - .../mceliece/mceliece6688128/vec/fft_tr.c | 289 - .../mceliece/mceliece6688128/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6688128/vec/gf.c | 236 - crypto_kem/mceliece/mceliece6688128/vec/gf.h | 22 - .../mceliece/mceliece6688128/vec/operations.c | 136 - .../mceliece/mceliece6688128/vec/params.h | 21 - .../mceliece/mceliece6688128/vec/pk_gen.c | 236 - .../mceliece/mceliece6688128/vec/pk_gen.h | 13 - .../mceliece/mceliece6688128/vec/powers.inc | 1920 ---- .../mceliece6688128/vec/scalars_2x.inc | 150 - .../mceliece6688128/vec/scalars_4x.inc | 360 - .../mceliece/mceliece6688128/vec/sk_gen.c | 98 - .../mceliece/mceliece6688128/vec/sk_gen.h | 16 - .../mceliece/mceliece6688128/vec/transpose.c | 35 - .../mceliece/mceliece6688128/vec/transpose.h | 14 - .../mceliece/mceliece6688128/vec/util.c | 97 - .../mceliece/mceliece6688128/vec/util.h | 27 - crypto_kem/mceliece/mceliece6688128/vec/vec.c | 139 - crypto_kem/mceliece/mceliece6688128/vec/vec.h | 25 - .../mceliece/mceliece6688128f/avx/LICENSE | 16 - .../mceliece/mceliece6688128f/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece6688128f/sse/LICENSE | 16 - .../mceliece/mceliece6688128f/sse/aes256ctr.c | 13 - .../mceliece/mceliece6688128f/sse/aes256ctr.h | 17 - .../mceliece/mceliece6688128f/sse/api.h | 32 - .../mceliece/mceliece6688128f/sse/benes.c | 311 - .../mceliece/mceliece6688128f/sse/benes.h | 14 - crypto_kem/mceliece/mceliece6688128f/sse/bm.c | 208 - crypto_kem/mceliece/mceliece6688128f/sse/bm.h | 15 - .../mceliece/mceliece6688128f/sse/consts.S | 32 - .../mceliece/mceliece6688128f/sse/consts.inc | 967 -- .../mceliece6688128f/sse/controlbits.c | 274 - .../mceliece6688128f/sse/controlbits.h | 15 - .../mceliece6688128f/sse/crypto_hash.h | 7 - .../mceliece/mceliece6688128f/sse/decrypt.c | 204 - .../mceliece/mceliece6688128f/sse/decrypt.h | 10 - .../mceliece/mceliece6688128f/sse/encrypt.c | 105 - .../mceliece/mceliece6688128f/sse/encrypt.h | 11 - .../mceliece/mceliece6688128f/sse/fft.c | 243 - .../mceliece/mceliece6688128f/sse/fft.h | 16 - .../mceliece/mceliece6688128f/sse/fft_tr.c | 338 - .../mceliece/mceliece6688128f/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6688128f/sse/gf.c | 236 - crypto_kem/mceliece/mceliece6688128f/sse/gf.h | 21 - .../mceliece6688128f/sse/operations.c | 136 - .../mceliece/mceliece6688128f/sse/params.h | 21 - .../mceliece/mceliece6688128f/sse/pk_gen.c | 346 - .../mceliece/mceliece6688128f/sse/pk_gen.h | 12 - .../mceliece/mceliece6688128f/sse/powers.inc | 960 -- .../mceliece6688128f/sse/scalars_2x.inc | 75 - .../mceliece6688128f/sse/scalars_4x.inc | 181 - .../mceliece/mceliece6688128f/sse/sk_gen.c | 98 - .../mceliece/mceliece6688128f/sse/sk_gen.h | 16 - .../mceliece6688128f/sse/syndrome_asm.S | 1260 --- .../mceliece/mceliece6688128f/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece6688128f/sse/update_asm.S | 511 - .../mceliece/mceliece6688128f/sse/util.c | 106 - .../mceliece/mceliece6688128f/sse/util.h | 23 - .../mceliece/mceliece6688128f/sse/vec128.c | 152 - .../mceliece/mceliece6688128f/sse/vec128.h | 43 - .../mceliece6688128f/sse/vec128_mul_asm.S | 2127 ----- .../mceliece6688128f/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece6688128f/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece6688128f/vec/aes256ctr.c | 13 - .../mceliece/mceliece6688128f/vec/aes256ctr.h | 17 - .../mceliece/mceliece6688128f/vec/api.h | 32 - .../mceliece/mceliece6688128f/vec/benes.c | 147 - .../mceliece/mceliece6688128f/vec/benes.h | 12 - crypto_kem/mceliece/mceliece6688128f/vec/bm.c | 245 - crypto_kem/mceliece/mceliece6688128f/vec/bm.h | 16 - .../mceliece/mceliece6688128f/vec/consts.inc | 1920 ---- .../mceliece6688128f/vec/controlbits.c | 274 - .../mceliece6688128f/vec/controlbits.h | 15 - .../mceliece6688128f/vec/crypto_hash.h | 7 - .../mceliece/mceliece6688128f/vec/decrypt.c | 191 - .../mceliece/mceliece6688128f/vec/decrypt.h | 10 - .../mceliece/mceliece6688128f/vec/encrypt.c | 142 - .../mceliece/mceliece6688128f/vec/encrypt.h | 11 - .../mceliece/mceliece6688128f/vec/fft.c | 274 - .../mceliece/mceliece6688128f/vec/fft.h | 16 - .../mceliece/mceliece6688128f/vec/fft_tr.c | 289 - .../mceliece/mceliece6688128f/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6688128f/vec/gf.c | 236 - crypto_kem/mceliece/mceliece6688128f/vec/gf.h | 22 - .../mceliece6688128f/vec/operations.c | 136 - .../mceliece/mceliece6688128f/vec/params.h | 21 - .../mceliece/mceliece6688128f/vec/pk_gen.c | 304 - .../mceliece/mceliece6688128f/vec/pk_gen.h | 13 - .../mceliece/mceliece6688128f/vec/powers.inc | 1920 ---- .../mceliece6688128f/vec/scalars_2x.inc | 150 - .../mceliece6688128f/vec/scalars_4x.inc | 360 - .../mceliece/mceliece6688128f/vec/sk_gen.c | 98 - .../mceliece/mceliece6688128f/vec/sk_gen.h | 16 - .../mceliece/mceliece6688128f/vec/transpose.c | 35 - .../mceliece/mceliece6688128f/vec/transpose.h | 14 - .../mceliece/mceliece6688128f/vec/util.c | 97 - .../mceliece/mceliece6688128f/vec/util.h | 27 - .../mceliece/mceliece6688128f/vec/vec.c | 139 - .../mceliece/mceliece6688128f/vec/vec.h | 25 - .../mceliece/mceliece6960119/avx/LICENSE | 16 - .../mceliece/mceliece6960119/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece6960119/sse/LICENSE | 16 - .../mceliece/mceliece6960119/sse/aes256ctr.c | 13 - .../mceliece/mceliece6960119/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece6960119/sse/api.h | 32 - .../mceliece/mceliece6960119/sse/benes.c | 311 - .../mceliece/mceliece6960119/sse/benes.h | 14 - crypto_kem/mceliece/mceliece6960119/sse/bm.c | 204 - crypto_kem/mceliece/mceliece6960119/sse/bm.h | 15 - .../mceliece/mceliece6960119/sse/consts.S | 32 - .../mceliece/mceliece6960119/sse/consts.inc | 967 -- .../mceliece6960119/sse/controlbits.c | 274 - .../mceliece6960119/sse/controlbits.h | 15 - .../mceliece6960119/sse/crypto_hash.h | 7 - .../mceliece/mceliece6960119/sse/decrypt.c | 207 - .../mceliece/mceliece6960119/sse/decrypt.h | 10 - .../mceliece/mceliece6960119/sse/encrypt.c | 105 - .../mceliece/mceliece6960119/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece6960119/sse/fft.c | 231 - crypto_kem/mceliece/mceliece6960119/sse/fft.h | 16 - .../mceliece/mceliece6960119/sse/fft_tr.c | 355 - .../mceliece/mceliece6960119/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6960119/sse/gf.c | 203 - crypto_kem/mceliece/mceliece6960119/sse/gf.h | 22 - .../mceliece/mceliece6960119/sse/operations.c | 136 - .../mceliece/mceliece6960119/sse/params.h | 21 - .../mceliece/mceliece6960119/sse/pk_gen.c | 275 - .../mceliece/mceliece6960119/sse/pk_gen.h | 12 - .../mceliece6960119/sse/scalars_2x.inc | 75 - .../mceliece6960119/sse/scalars_4x.inc | 181 - .../mceliece/mceliece6960119/sse/sk_gen.c | 98 - .../mceliece/mceliece6960119/sse/sk_gen.h | 16 - .../mceliece6960119/sse/syndrome_asm.S | 1311 --- .../mceliece/mceliece6960119/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece/mceliece6960119/sse/update_asm.S | 511 - .../mceliece/mceliece6960119/sse/util.c | 106 - .../mceliece/mceliece6960119/sse/util.h | 23 - .../mceliece/mceliece6960119/sse/vec128.c | 152 - .../mceliece/mceliece6960119/sse/vec128.h | 43 - .../mceliece6960119/sse/vec128_mul_asm.S | 2127 ----- .../mceliece6960119/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece6960119/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece6960119/vec/aes256ctr.c | 13 - .../mceliece/mceliece6960119/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece6960119/vec/api.h | 32 - .../mceliece/mceliece6960119/vec/benes.c | 147 - .../mceliece/mceliece6960119/vec/benes.h | 12 - crypto_kem/mceliece/mceliece6960119/vec/bm.c | 239 - crypto_kem/mceliece/mceliece6960119/vec/bm.h | 16 - .../mceliece/mceliece6960119/vec/consts.inc | 1920 ---- .../mceliece6960119/vec/controlbits.c | 274 - .../mceliece6960119/vec/controlbits.h | 15 - .../mceliece6960119/vec/crypto_hash.h | 7 - .../mceliece/mceliece6960119/vec/decrypt.c | 193 - .../mceliece/mceliece6960119/vec/decrypt.h | 10 - .../mceliece/mceliece6960119/vec/encrypt.c | 152 - .../mceliece/mceliece6960119/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece6960119/vec/fft.c | 269 - crypto_kem/mceliece/mceliece6960119/vec/fft.h | 16 - .../mceliece/mceliece6960119/vec/fft_tr.c | 300 - .../mceliece/mceliece6960119/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6960119/vec/gf.c | 203 - crypto_kem/mceliece/mceliece6960119/vec/gf.h | 20 - .../mceliece/mceliece6960119/vec/operations.c | 136 - .../mceliece/mceliece6960119/vec/params.h | 21 - .../mceliece/mceliece6960119/vec/pk_gen.c | 251 - .../mceliece/mceliece6960119/vec/pk_gen.h | 12 - .../mceliece6960119/vec/scalars_2x.inc | 150 - .../mceliece6960119/vec/scalars_4x.inc | 360 - .../mceliece/mceliece6960119/vec/sk_gen.c | 98 - .../mceliece/mceliece6960119/vec/sk_gen.h | 16 - .../mceliece/mceliece6960119/vec/transpose.c | 35 - .../mceliece/mceliece6960119/vec/transpose.h | 14 - .../mceliece/mceliece6960119/vec/util.c | 97 - .../mceliece/mceliece6960119/vec/util.h | 27 - crypto_kem/mceliece/mceliece6960119/vec/vec.c | 138 - crypto_kem/mceliece/mceliece6960119/vec/vec.h | 25 - .../mceliece/mceliece6960119f/avx/LICENSE | 16 - .../mceliece/mceliece6960119f/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece6960119f/sse/LICENSE | 16 - .../mceliece/mceliece6960119f/sse/aes256ctr.c | 13 - .../mceliece/mceliece6960119f/sse/aes256ctr.h | 17 - .../mceliece/mceliece6960119f/sse/api.h | 31 - .../mceliece/mceliece6960119f/sse/benes.c | 311 - .../mceliece/mceliece6960119f/sse/benes.h | 14 - crypto_kem/mceliece/mceliece6960119f/sse/bm.c | 204 - crypto_kem/mceliece/mceliece6960119f/sse/bm.h | 15 - .../mceliece/mceliece6960119f/sse/consts.S | 32 - .../mceliece/mceliece6960119f/sse/consts.inc | 967 -- .../mceliece6960119f/sse/controlbits.c | 274 - .../mceliece6960119f/sse/controlbits.h | 15 - .../mceliece6960119f/sse/crypto_hash.h | 7 - .../mceliece/mceliece6960119f/sse/decrypt.c | 207 - .../mceliece/mceliece6960119f/sse/decrypt.h | 10 - .../mceliece/mceliece6960119f/sse/encrypt.c | 105 - .../mceliece/mceliece6960119f/sse/encrypt.h | 11 - .../mceliece/mceliece6960119f/sse/fft.c | 231 - .../mceliece/mceliece6960119f/sse/fft.h | 16 - .../mceliece/mceliece6960119f/sse/fft_tr.c | 355 - .../mceliece/mceliece6960119f/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6960119f/sse/gf.c | 203 - crypto_kem/mceliece/mceliece6960119f/sse/gf.h | 22 - .../mceliece6960119f/sse/operations.c | 136 - .../mceliece/mceliece6960119f/sse/params.h | 21 - .../mceliece/mceliece6960119f/sse/pk_gen.c | 359 - .../mceliece/mceliece6960119f/sse/pk_gen.h | 12 - .../mceliece6960119f/sse/scalars_2x.inc | 75 - .../mceliece6960119f/sse/scalars_4x.inc | 181 - .../mceliece/mceliece6960119f/sse/sk_gen.c | 98 - .../mceliece/mceliece6960119f/sse/sk_gen.h | 16 - .../mceliece6960119f/sse/syndrome_asm.S | 1311 --- .../mceliece/mceliece6960119f/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece6960119f/sse/update_asm.S | 511 - .../mceliece/mceliece6960119f/sse/util.c | 106 - .../mceliece/mceliece6960119f/sse/util.h | 23 - .../mceliece/mceliece6960119f/sse/vec128.c | 152 - .../mceliece/mceliece6960119f/sse/vec128.h | 43 - .../mceliece6960119f/sse/vec128_mul_asm.S | 2127 ----- .../mceliece6960119f/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece6960119f/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece6960119f/vec/aes256ctr.c | 13 - .../mceliece/mceliece6960119f/vec/aes256ctr.h | 17 - .../mceliece/mceliece6960119f/vec/api.h | 31 - .../mceliece/mceliece6960119f/vec/benes.c | 147 - .../mceliece/mceliece6960119f/vec/benes.h | 12 - crypto_kem/mceliece/mceliece6960119f/vec/bm.c | 239 - crypto_kem/mceliece/mceliece6960119f/vec/bm.h | 16 - .../mceliece/mceliece6960119f/vec/consts.inc | 1920 ---- .../mceliece6960119f/vec/controlbits.c | 274 - .../mceliece6960119f/vec/controlbits.h | 15 - .../mceliece6960119f/vec/crypto_hash.h | 7 - .../mceliece/mceliece6960119f/vec/decrypt.c | 193 - .../mceliece/mceliece6960119f/vec/decrypt.h | 10 - .../mceliece/mceliece6960119f/vec/encrypt.c | 152 - .../mceliece/mceliece6960119f/vec/encrypt.h | 11 - .../mceliece/mceliece6960119f/vec/fft.c | 269 - .../mceliece/mceliece6960119f/vec/fft.h | 16 - .../mceliece/mceliece6960119f/vec/fft_tr.c | 300 - .../mceliece/mceliece6960119f/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece6960119f/vec/gf.c | 203 - crypto_kem/mceliece/mceliece6960119f/vec/gf.h | 20 - .../mceliece6960119f/vec/operations.c | 136 - .../mceliece/mceliece6960119f/vec/params.h | 21 - .../mceliece/mceliece6960119f/vec/pk_gen.c | 311 - .../mceliece/mceliece6960119f/vec/pk_gen.h | 12 - .../mceliece6960119f/vec/scalars_2x.inc | 150 - .../mceliece6960119f/vec/scalars_4x.inc | 360 - .../mceliece/mceliece6960119f/vec/sk_gen.c | 98 - .../mceliece/mceliece6960119f/vec/sk_gen.h | 16 - .../mceliece/mceliece6960119f/vec/transpose.c | 35 - .../mceliece/mceliece6960119f/vec/transpose.h | 14 - .../mceliece/mceliece6960119f/vec/util.c | 97 - .../mceliece/mceliece6960119f/vec/util.h | 27 - .../mceliece/mceliece6960119f/vec/vec.c | 138 - .../mceliece/mceliece6960119f/vec/vec.h | 25 - .../mceliece/mceliece8192128/avx/LICENSE | 16 - .../mceliece/mceliece8192128/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece8192128/sse/LICENSE | 16 - .../mceliece/mceliece8192128/sse/aes256ctr.c | 13 - .../mceliece/mceliece8192128/sse/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece8192128/sse/api.h | 32 - .../mceliece/mceliece8192128/sse/benes.c | 311 - .../mceliece/mceliece8192128/sse/benes.h | 14 - crypto_kem/mceliece/mceliece8192128/sse/bm.c | 208 - crypto_kem/mceliece/mceliece8192128/sse/bm.h | 15 - .../mceliece/mceliece8192128/sse/consts.S | 32 - .../mceliece/mceliece8192128/sse/consts.inc | 967 -- .../mceliece8192128/sse/controlbits.c | 274 - .../mceliece8192128/sse/controlbits.h | 15 - .../mceliece8192128/sse/crypto_hash.h | 7 - .../mceliece/mceliece8192128/sse/decrypt.c | 175 - .../mceliece/mceliece8192128/sse/decrypt.h | 10 - .../mceliece/mceliece8192128/sse/encrypt.c | 84 - .../mceliece/mceliece8192128/sse/encrypt.h | 11 - crypto_kem/mceliece/mceliece8192128/sse/fft.c | 243 - crypto_kem/mceliece/mceliece8192128/sse/fft.h | 16 - .../mceliece/mceliece8192128/sse/fft_tr.c | 338 - .../mceliece/mceliece8192128/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece8192128/sse/gf.c | 236 - crypto_kem/mceliece/mceliece8192128/sse/gf.h | 25 - .../mceliece/mceliece8192128/sse/operations.c | 136 - .../mceliece/mceliece8192128/sse/params.h | 21 - .../mceliece/mceliece8192128/sse/pk_gen.c | 268 - .../mceliece/mceliece8192128/sse/pk_gen.h | 12 - .../mceliece/mceliece8192128/sse/powers.inc | 960 -- .../mceliece8192128/sse/scalars_2x.inc | 75 - .../mceliece8192128/sse/scalars_4x.inc | 181 - .../mceliece/mceliece8192128/sse/sk_gen.c | 98 - .../mceliece/mceliece8192128/sse/sk_gen.h | 16 - .../mceliece8192128/sse/syndrome_asm.S | 1449 --- .../mceliece/mceliece8192128/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece/mceliece8192128/sse/update_asm.S | 511 - .../mceliece/mceliece8192128/sse/util.c | 97 - .../mceliece/mceliece8192128/sse/util.h | 23 - .../mceliece/mceliece8192128/sse/vec128.c | 152 - .../mceliece/mceliece8192128/sse/vec128.h | 43 - .../mceliece8192128/sse/vec128_mul_asm.S | 2127 ----- .../mceliece8192128/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece8192128/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece8192128/vec/aes256ctr.c | 13 - .../mceliece/mceliece8192128/vec/aes256ctr.h | 17 - crypto_kem/mceliece/mceliece8192128/vec/api.h | 32 - .../mceliece/mceliece8192128/vec/benes.c | 147 - .../mceliece/mceliece8192128/vec/benes.h | 12 - crypto_kem/mceliece/mceliece8192128/vec/bm.c | 245 - crypto_kem/mceliece/mceliece8192128/vec/bm.h | 16 - .../mceliece/mceliece8192128/vec/consts.inc | 1920 ---- .../mceliece8192128/vec/controlbits.c | 274 - .../mceliece8192128/vec/controlbits.h | 15 - .../mceliece8192128/vec/crypto_hash.h | 7 - .../mceliece/mceliece8192128/vec/decrypt.c | 168 - .../mceliece/mceliece8192128/vec/decrypt.h | 10 - .../mceliece/mceliece8192128/vec/encrypt.c | 116 - .../mceliece/mceliece8192128/vec/encrypt.h | 11 - crypto_kem/mceliece/mceliece8192128/vec/fft.c | 274 - crypto_kem/mceliece/mceliece8192128/vec/fft.h | 16 - .../mceliece/mceliece8192128/vec/fft_tr.c | 289 - .../mceliece/mceliece8192128/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece8192128/vec/gf.c | 236 - crypto_kem/mceliece/mceliece8192128/vec/gf.h | 25 - .../mceliece/mceliece8192128/vec/operations.c | 136 - .../mceliece/mceliece8192128/vec/params.h | 21 - .../mceliece/mceliece8192128/vec/pk_gen.c | 248 - .../mceliece/mceliece8192128/vec/pk_gen.h | 12 - .../mceliece/mceliece8192128/vec/powers.inc | 1920 ---- .../mceliece8192128/vec/scalars_2x.inc | 150 - .../mceliece8192128/vec/scalars_4x.inc | 360 - .../mceliece/mceliece8192128/vec/sk_gen.c | 98 - .../mceliece/mceliece8192128/vec/sk_gen.h | 16 - .../mceliece/mceliece8192128/vec/transpose.c | 35 - .../mceliece/mceliece8192128/vec/transpose.h | 14 - .../mceliece/mceliece8192128/vec/util.c | 76 - .../mceliece/mceliece8192128/vec/util.h | 25 - crypto_kem/mceliece/mceliece8192128/vec/vec.c | 138 - crypto_kem/mceliece/mceliece8192128/vec/vec.h | 25 - .../mceliece/mceliece8192128f/avx/LICENSE | 16 - .../mceliece/mceliece8192128f/clean/LICENSE | 16 - .../clean/Makefile.Microsoft_nmake | 24 - .../mceliece/mceliece8192128f/sse/LICENSE | 16 - .../mceliece/mceliece8192128f/sse/aes256ctr.c | 13 - .../mceliece/mceliece8192128f/sse/aes256ctr.h | 17 - .../mceliece/mceliece8192128f/sse/api.h | 32 - .../mceliece/mceliece8192128f/sse/benes.c | 311 - .../mceliece/mceliece8192128f/sse/benes.h | 14 - crypto_kem/mceliece/mceliece8192128f/sse/bm.c | 208 - crypto_kem/mceliece/mceliece8192128f/sse/bm.h | 15 - .../mceliece/mceliece8192128f/sse/consts.S | 32 - .../mceliece/mceliece8192128f/sse/consts.inc | 967 -- .../mceliece8192128f/sse/controlbits.c | 274 - .../mceliece8192128f/sse/controlbits.h | 15 - .../mceliece8192128f/sse/crypto_hash.h | 7 - .../mceliece/mceliece8192128f/sse/decrypt.c | 175 - .../mceliece/mceliece8192128f/sse/decrypt.h | 10 - .../mceliece/mceliece8192128f/sse/encrypt.c | 84 - .../mceliece/mceliece8192128f/sse/encrypt.h | 11 - .../mceliece/mceliece8192128f/sse/fft.c | 243 - .../mceliece/mceliece8192128f/sse/fft.h | 16 - .../mceliece/mceliece8192128f/sse/fft_tr.c | 338 - .../mceliece/mceliece8192128f/sse/fft_tr.h | 14 - crypto_kem/mceliece/mceliece8192128f/sse/gf.c | 236 - crypto_kem/mceliece/mceliece8192128f/sse/gf.h | 25 - .../mceliece8192128f/sse/operations.c | 136 - .../mceliece/mceliece8192128f/sse/params.h | 21 - .../mceliece/mceliece8192128f/sse/pk_gen.c | 342 - .../mceliece/mceliece8192128f/sse/pk_gen.h | 12 - .../mceliece/mceliece8192128f/sse/powers.inc | 960 -- .../mceliece8192128f/sse/scalars_2x.inc | 75 - .../mceliece8192128f/sse/scalars_4x.inc | 181 - .../mceliece/mceliece8192128f/sse/sk_gen.c | 98 - .../mceliece/mceliece8192128f/sse/sk_gen.h | 16 - .../mceliece8192128f/sse/syndrome_asm.S | 1449 --- .../mceliece/mceliece8192128f/sse/transpose.h | 17 - .../sse/transpose_64x128_sp_asm.S | 8145 ---------------- .../mceliece8192128f/sse/update_asm.S | 511 - .../mceliece/mceliece8192128f/sse/util.c | 97 - .../mceliece/mceliece8192128f/sse/util.h | 23 - .../mceliece/mceliece8192128f/sse/vec128.c | 152 - .../mceliece/mceliece8192128f/sse/vec128.h | 43 - .../mceliece8192128f/sse/vec128_mul_asm.S | 2127 ----- .../mceliece8192128f/sse/vec_reduce_asm.S | 513 - .../mceliece/mceliece8192128f/vec/LICENSE | 16 - .../vec/Makefile.Microsoft_nmake | 25 - .../mceliece/mceliece8192128f/vec/aes256ctr.c | 13 - .../mceliece/mceliece8192128f/vec/aes256ctr.h | 17 - .../mceliece/mceliece8192128f/vec/api.h | 32 - .../mceliece/mceliece8192128f/vec/benes.c | 147 - .../mceliece/mceliece8192128f/vec/benes.h | 12 - crypto_kem/mceliece/mceliece8192128f/vec/bm.c | 245 - crypto_kem/mceliece/mceliece8192128f/vec/bm.h | 16 - .../mceliece/mceliece8192128f/vec/consts.inc | 1920 ---- .../mceliece8192128f/vec/controlbits.c | 274 - .../mceliece8192128f/vec/controlbits.h | 15 - .../mceliece8192128f/vec/crypto_hash.h | 7 - .../mceliece/mceliece8192128f/vec/decrypt.c | 168 - .../mceliece/mceliece8192128f/vec/decrypt.h | 10 - .../mceliece/mceliece8192128f/vec/encrypt.c | 116 - .../mceliece/mceliece8192128f/vec/encrypt.h | 11 - .../mceliece/mceliece8192128f/vec/fft.c | 274 - .../mceliece/mceliece8192128f/vec/fft.h | 16 - .../mceliece/mceliece8192128f/vec/fft_tr.c | 289 - .../mceliece/mceliece8192128f/vec/fft_tr.h | 14 - crypto_kem/mceliece/mceliece8192128f/vec/gf.c | 236 - crypto_kem/mceliece/mceliece8192128f/vec/gf.h | 25 - .../mceliece8192128f/vec/operations.c | 136 - .../mceliece/mceliece8192128f/vec/params.h | 21 - .../mceliece/mceliece8192128f/vec/pk_gen.c | 301 - .../mceliece/mceliece8192128f/vec/pk_gen.h | 12 - .../mceliece/mceliece8192128f/vec/powers.inc | 1920 ---- .../mceliece8192128f/vec/scalars_2x.inc | 150 - .../mceliece8192128f/vec/scalars_4x.inc | 360 - .../mceliece/mceliece8192128f/vec/sk_gen.c | 98 - .../mceliece/mceliece8192128f/vec/sk_gen.h | 16 - .../mceliece/mceliece8192128f/vec/transpose.c | 35 - .../mceliece/mceliece8192128f/vec/transpose.h | 14 - .../mceliece/mceliece8192128f/vec/util.c | 76 - .../mceliece/mceliece8192128f/vec/util.h | 25 - .../mceliece/mceliece8192128f/vec/vec.c | 138 - .../mceliece/mceliece8192128f/vec/vec.h | 25 - crypto_kem/ntru/ntruhps2048509/avx2/LICENSE | 1 - crypto_kem/ntru/ntruhps2048509/clean/LICENSE | 1 - .../clean/Makefile.Microsoft_nmake | 19 - crypto_kem/ntru/ntruhps2048677/avx2/LICENSE | 1 - crypto_kem/ntru/ntruhps2048677/clean/LICENSE | 1 - .../clean/Makefile.Microsoft_nmake | 19 - crypto_kem/ntru/ntruhps4096821/avx2/LICENSE | 1 - crypto_kem/ntru/ntruhps4096821/clean/LICENSE | 1 - .../clean/Makefile.Microsoft_nmake | 19 - crypto_kem/ntru/ntruhrss701/avx2/LICENSE | 1 - crypto_kem/ntru/ntruhrss701/clean/LICENSE | 1 - .../clean/Makefile.Microsoft_nmake | 19 - crypto_kem/ntru_prime/ntrulpr653/avx2/LICENSE | 1 - .../ntru_prime/ntrulpr653/clean/LICENSE | 1 - .../ntrulpr653/clean/Makefile.Microsoft_nmake | 19 - crypto_kem/ntru_prime/ntrulpr761/avx2/LICENSE | 1 - .../ntru_prime/ntrulpr761/clean/LICENSE | 1 - .../ntrulpr761/clean/Makefile.Microsoft_nmake | 19 - crypto_kem/ntru_prime/ntrulpr857/avx2/LICENSE | 1 - .../ntru_prime/ntrulpr857/clean/LICENSE | 1 - .../ntrulpr857/clean/Makefile.Microsoft_nmake | 19 - crypto_kem/saber/firesaber/avx2/LICENSE | 1 - crypto_kem/saber/firesaber/clean/LICENSE | 1 - .../firesaber/clean/Makefile.Microsoft_nmake | 19 - crypto_kem/saber/lightsaber/avx2/LICENSE | 1 - crypto_kem/saber/lightsaber/clean/LICENSE | 1 - .../lightsaber/clean/Makefile.Microsoft_nmake | 19 - crypto_kem/saber/saber/avx2/LICENSE | 1 - crypto_kem/saber/saber/clean/LICENSE | 1 - .../saber/clean/Makefile.Microsoft_nmake | 19 - crypto_sign/dilithium/dilithium2/avx2/LICENSE | 5 - .../dilithium/dilithium2/clean/LICENSE | 5 - .../dilithium2/clean/Makefile.Microsoft_nmake | 23 - crypto_sign/dilithium/dilithium3/avx2/LICENSE | 5 - .../dilithium/dilithium3/clean/LICENSE | 5 - .../dilithium3/clean/Makefile.Microsoft_nmake | 23 - crypto_sign/dilithium/dilithium5/avx2/LICENSE | 5 - .../dilithium/dilithium5/clean/LICENSE | 5 - .../dilithium5/clean/Makefile.Microsoft_nmake | 23 - crypto_sign/falcon/falcon-1024/avx2/LICENSE | 24 - crypto_sign/falcon/falcon-1024/clean/LICENSE | 24 - .../clean/Makefile.Microsoft_nmake | 23 - crypto_sign/falcon/falcon-512/avx2/LICENSE | 24 - crypto_sign/falcon/falcon-512/clean/LICENSE | 24 - .../falcon-512/clean/Makefile.Microsoft_nmake | 23 - .../rainbow/rainbowI-classic/clean/LICENSE | 8 - .../clean/Makefile.Microsoft_nmake | 19 - .../rainbow/rainbowIII-classic/clean/LICENSE | 8 - .../clean/Makefile.Microsoft_nmake | 19 - .../rainbow/rainbowV-classic/clean/LICENSE | 8 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128f-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128f-robust/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128f-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128f-simple/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128s-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128s-robust/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128s-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-128s-simple/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192f-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192f-robust/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192f-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192f-simple/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192s-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192s-robust/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192s-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-192s-simple/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256f-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256f-robust/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256f-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256f-simple/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256s-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256s-robust/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256s-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 19 - .../sphincs-sha256-256s-simple/clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-128f-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-128f-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-128s-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-128s-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-192f-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-192f-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-192s-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-192s-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-256f-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-256f-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-256s-robust/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - .../sphincs-shake256-256s-simple/avx2/LICENSE | 116 - .../avx2/Makefile.Microsoft_nmake | 27 - .../clean/LICENSE | 116 - .../clean/Makefile.Microsoft_nmake | 19 - src/common/Makefile | 22 + {common => src/common}/aes.c | 0 {common => src/common}/aes.h | 0 src/common/cpucycles.c | 17 + src/common/cpucycles.h | 33 + {common => src/common}/fips202.c | 0 {common => src/common}/fips202.h | 0 .../keccak4x/KeccakP-1600-times4-SIMD256.c | 0 .../keccak4x/KeccakP-1600-times4-SnP.h | 0 .../keccak4x/KeccakP-1600-unrolling.macros | 0 .../common}/keccak4x/SIMD256-config.h | 0 {common => src/common}/keccak4x/align.h | 0 {common => src/common}/keccak4x/brg_endian.h | 0 {common => src/common}/nistseedexpander.c | 0 {common => src/common}/nistseedexpander.h | 0 {common => src/common}/randombytes.c | 0 {common => src/common}/randombytes.h | 0 {common => src/common}/sha2.c | 0 {common => src/common}/sha2.h | 0 {common => src/common}/sp800-185.c | 0 {common => src/common}/sp800-185.h | 0 src/common/speed_print.c | 51 + src/common/speed_print.h | 9 + .../frodokem1344shake/clean/CMakeLists.txt | 10 + .../kem/frodo/frodokem1344shake/clean}/api.h | 0 .../frodo/frodokem1344shake/clean}/common.h | 0 .../kem/frodo/frodokem1344shake/clean}/kem.c | 0 .../frodokem1344shake/clean}/matrix_shake.c | 0 .../frodo/frodokem1344shake/clean}/noise.c | 0 .../frodo/frodokem1344shake/clean}/params.h | 0 .../kem/frodo/frodokem1344shake/clean}/util.c | 0 .../frodokem640shake/clean/CMakeLists.txt | 10 + .../kem/frodo/frodokem640shake/clean}/api.h | 0 .../frodo/frodokem640shake/clean}/common.h | 0 .../kem/frodo/frodokem640shake/clean}/kem.c | 0 .../frodokem640shake/clean}/matrix_shake.c | 0 .../kem/frodo/frodokem640shake/clean}/noise.c | 0 .../frodo/frodokem640shake/clean}/params.h | 0 .../kem/frodo/frodokem640shake/clean}/util.c | 0 .../frodokem976shake/clean/CMakeLists.txt | 10 + .../kem/frodo/frodokem976shake/clean}/api.h | 0 .../frodo/frodokem976shake/clean}/common.h | 0 .../kem/frodo/frodokem976shake/clean}/kem.c | 0 .../frodokem976shake/clean}/matrix_shake.c | 0 .../kem/frodo/frodokem976shake/clean}/noise.c | 0 .../frodo/frodokem976shake/clean}/params.h | 0 .../kem/frodo/frodokem976shake/clean}/util.c | 0 src/kem/kyber/kyber1024/avx2/CMakeLists.txt | 21 + .../kem}/kyber/kyber1024/avx2/align.h | 0 .../kem}/kyber/kyber1024/avx2/api.h | 0 .../kem}/kyber/kyber1024/avx2/basemul.S | 0 .../kem}/kyber/kyber1024/avx2/cbd.c | 0 .../kem}/kyber/kyber1024/avx2/cbd.h | 0 .../kem}/kyber/kyber1024/avx2/cdecl.h | 0 .../kem}/kyber/kyber1024/avx2/consts.c | 0 .../kem}/kyber/kyber1024/avx2/consts.h | 0 .../kem}/kyber/kyber1024/avx2/fips202x4.c | 0 .../kem}/kyber/kyber1024/avx2/fips202x4.h | 0 .../kem}/kyber/kyber1024/avx2/fq.S | 0 .../kem}/kyber/kyber1024/avx2/fq.inc | 0 .../kem}/kyber/kyber1024/avx2/indcpa.c | 0 .../kem}/kyber/kyber1024/avx2/indcpa.h | 0 .../kem}/kyber/kyber1024/avx2/invntt.S | 0 .../kem}/kyber/kyber1024/avx2/kem.c | 0 .../kem}/kyber/kyber1024/avx2/kem.h | 0 .../kem}/kyber/kyber1024/avx2/ntt.S | 0 .../kem}/kyber/kyber1024/avx2/ntt.h | 0 .../kem}/kyber/kyber1024/avx2/params.h | 0 .../kem}/kyber/kyber1024/avx2/poly.c | 0 .../kem}/kyber/kyber1024/avx2/poly.h | 0 .../kem}/kyber/kyber1024/avx2/polyvec.c | 0 .../kem}/kyber/kyber1024/avx2/polyvec.h | 0 .../kem}/kyber/kyber1024/avx2/reduce.h | 0 .../kem}/kyber/kyber1024/avx2/rejsample.c | 0 .../kem}/kyber/kyber1024/avx2/rejsample.h | 0 .../kem}/kyber/kyber1024/avx2/shuffle.S | 0 .../kem}/kyber/kyber1024/avx2/shuffle.inc | 0 .../kyber/kyber1024/avx2/symmetric-shake.c | 0 .../kem}/kyber/kyber1024/avx2/symmetric.h | 0 .../kem}/kyber/kyber1024/avx2/verify.c | 0 .../kem}/kyber/kyber1024/avx2/verify.h | 0 src/kem/kyber/kyber1024/clean/CMakeLists.txt | 15 + .../kem}/kyber/kyber1024/clean/api.h | 0 .../kem}/kyber/kyber1024/clean/cbd.c | 0 .../kem}/kyber/kyber1024/clean/cbd.h | 0 .../kem}/kyber/kyber1024/clean/indcpa.c | 0 .../kem}/kyber/kyber1024/clean/indcpa.h | 0 .../kem}/kyber/kyber1024/clean/kem.c | 0 .../kem}/kyber/kyber1024/clean/kem.h | 0 .../kem}/kyber/kyber1024/clean/ntt.c | 0 .../kem}/kyber/kyber1024/clean/ntt.h | 0 .../kem}/kyber/kyber1024/clean/params.h | 0 .../kem}/kyber/kyber1024/clean/poly.c | 0 .../kem}/kyber/kyber1024/clean/poly.h | 0 .../kem}/kyber/kyber1024/clean/polyvec.c | 0 .../kem}/kyber/kyber1024/clean/polyvec.h | 0 .../kem}/kyber/kyber1024/clean/reduce.c | 0 .../kem}/kyber/kyber1024/clean/reduce.h | 0 .../kyber/kyber1024/clean/symmetric-shake.c | 0 .../kem}/kyber/kyber1024/clean/symmetric.h | 0 .../kem}/kyber/kyber1024/clean/verify.c | 0 .../kem}/kyber/kyber1024/clean/verify.h | 0 src/kem/kyber/kyber512/avx2/CMakeLists.txt | 21 + .../kem}/kyber/kyber512/avx2/align.h | 0 .../kem}/kyber/kyber512/avx2/api.h | 0 .../kem}/kyber/kyber512/avx2/basemul.S | 0 .../kem}/kyber/kyber512/avx2/cbd.c | 0 .../kem}/kyber/kyber512/avx2/cbd.h | 0 .../kem}/kyber/kyber512/avx2/cdecl.h | 0 .../kem}/kyber/kyber512/avx2/consts.c | 0 .../kem}/kyber/kyber512/avx2/consts.h | 0 .../kem}/kyber/kyber512/avx2/fips202x4.c | 0 .../kem}/kyber/kyber512/avx2/fips202x4.h | 0 .../kem}/kyber/kyber512/avx2/fq.S | 0 .../kem}/kyber/kyber512/avx2/fq.inc | 0 .../kem}/kyber/kyber512/avx2/indcpa.c | 0 .../kem}/kyber/kyber512/avx2/indcpa.h | 0 .../kem}/kyber/kyber512/avx2/invntt.S | 0 .../kem}/kyber/kyber512/avx2/kem.c | 0 .../kem}/kyber/kyber512/avx2/kem.h | 0 .../kem}/kyber/kyber512/avx2/ntt.S | 0 .../kem}/kyber/kyber512/avx2/ntt.h | 0 .../kem}/kyber/kyber512/avx2/params.h | 0 .../kem}/kyber/kyber512/avx2/poly.c | 0 .../kem}/kyber/kyber512/avx2/poly.h | 0 .../kem}/kyber/kyber512/avx2/polyvec.c | 0 .../kem}/kyber/kyber512/avx2/polyvec.h | 0 .../kem}/kyber/kyber512/avx2/reduce.h | 0 .../kem}/kyber/kyber512/avx2/rejsample.c | 0 .../kem}/kyber/kyber512/avx2/rejsample.h | 0 .../kem}/kyber/kyber512/avx2/shuffle.S | 0 .../kem}/kyber/kyber512/avx2/shuffle.inc | 0 .../kyber/kyber512/avx2/symmetric-shake.c | 0 .../kem}/kyber/kyber512/avx2/symmetric.h | 0 .../kem}/kyber/kyber512/avx2/verify.c | 0 .../kem}/kyber/kyber512/avx2/verify.h | 0 src/kem/kyber/kyber512/clean/CMakeLists.txt | 15 + .../kem}/kyber/kyber512/clean/api.h | 0 .../kem}/kyber/kyber512/clean/cbd.c | 0 .../kem}/kyber/kyber512/clean/cbd.h | 0 .../kem}/kyber/kyber512/clean/indcpa.c | 0 .../kem}/kyber/kyber512/clean/indcpa.h | 0 .../kem}/kyber/kyber512/clean/kem.c | 0 .../kem}/kyber/kyber512/clean/kem.h | 0 .../kem}/kyber/kyber512/clean/ntt.c | 0 .../kem}/kyber/kyber512/clean/ntt.h | 0 .../kem}/kyber/kyber512/clean/params.h | 0 .../kem}/kyber/kyber512/clean/poly.c | 0 .../kem}/kyber/kyber512/clean/poly.h | 0 .../kem}/kyber/kyber512/clean/polyvec.c | 0 .../kem}/kyber/kyber512/clean/polyvec.h | 0 .../kem}/kyber/kyber512/clean/reduce.c | 0 .../kem}/kyber/kyber512/clean/reduce.h | 0 .../kyber/kyber512/clean/symmetric-shake.c | 0 .../kem}/kyber/kyber512/clean/symmetric.h | 0 .../kem}/kyber/kyber512/clean/verify.c | 0 .../kem}/kyber/kyber512/clean/verify.h | 0 src/kem/kyber/kyber768/avx2/CMakeLists.txt | 21 + .../kem}/kyber/kyber768/avx2/align.h | 0 .../kem}/kyber/kyber768/avx2/api.h | 0 .../kem}/kyber/kyber768/avx2/basemul.S | 0 .../kem}/kyber/kyber768/avx2/cbd.c | 0 .../kem}/kyber/kyber768/avx2/cbd.h | 0 .../kem}/kyber/kyber768/avx2/cdecl.h | 0 .../kem}/kyber/kyber768/avx2/consts.c | 0 .../kem}/kyber/kyber768/avx2/consts.h | 0 .../kem}/kyber/kyber768/avx2/fips202x4.c | 0 .../kem}/kyber/kyber768/avx2/fips202x4.h | 0 .../kem}/kyber/kyber768/avx2/fq.S | 0 .../kem}/kyber/kyber768/avx2/fq.inc | 0 .../kem}/kyber/kyber768/avx2/indcpa.c | 0 .../kem}/kyber/kyber768/avx2/indcpa.h | 0 .../kem}/kyber/kyber768/avx2/invntt.S | 0 .../kem}/kyber/kyber768/avx2/kem.c | 0 .../kem}/kyber/kyber768/avx2/kem.h | 0 .../kem}/kyber/kyber768/avx2/ntt.S | 0 .../kem}/kyber/kyber768/avx2/ntt.h | 0 .../kem}/kyber/kyber768/avx2/params.h | 0 .../kem}/kyber/kyber768/avx2/poly.c | 0 .../kem}/kyber/kyber768/avx2/poly.h | 0 .../kem}/kyber/kyber768/avx2/polyvec.c | 0 .../kem}/kyber/kyber768/avx2/polyvec.h | 0 .../kem}/kyber/kyber768/avx2/reduce.h | 0 .../kem}/kyber/kyber768/avx2/rejsample.c | 0 .../kem}/kyber/kyber768/avx2/rejsample.h | 0 .../kem}/kyber/kyber768/avx2/shuffle.S | 0 .../kem}/kyber/kyber768/avx2/shuffle.inc | 0 .../kyber/kyber768/avx2/symmetric-shake.c | 0 .../kem}/kyber/kyber768/avx2/symmetric.h | 0 .../kem}/kyber/kyber768/avx2/verify.c | 0 .../kem}/kyber/kyber768/avx2/verify.h | 0 src/kem/kyber/kyber768/clean/CMakeLists.txt | 18 + .../kem}/kyber/kyber768/clean/api.h | 0 .../kem}/kyber/kyber768/clean/cbd.c | 0 .../kem}/kyber/kyber768/clean/cbd.h | 0 .../kem}/kyber/kyber768/clean/indcpa.c | 0 .../kem}/kyber/kyber768/clean/indcpa.h | 0 .../kem}/kyber/kyber768/clean/kem.c | 0 .../kem}/kyber/kyber768/clean/kem.h | 0 .../kem}/kyber/kyber768/clean/ntt.c | 0 .../kem}/kyber/kyber768/clean/ntt.h | 0 .../kem}/kyber/kyber768/clean/params.h | 0 .../kem}/kyber/kyber768/clean/poly.c | 0 .../kem}/kyber/kyber768/clean/poly.h | 0 .../kem}/kyber/kyber768/clean/polyvec.c | 0 .../kem}/kyber/kyber768/clean/polyvec.h | 0 .../kem}/kyber/kyber768/clean/reduce.c | 0 .../kem}/kyber/kyber768/clean/reduce.h | 0 .../kyber/kyber768/clean/symmetric-shake.c | 0 .../kem}/kyber/kyber768/clean/symmetric.h | 0 .../kem}/kyber/kyber768/clean/verify.c | 0 .../kem}/kyber/kyber768/clean/verify.h | 0 .../mceliece/mceliece348864/avx/aes256ctr.c | 0 .../mceliece/mceliece348864/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece348864/avx/api.h | 0 .../kem}/mceliece/mceliece348864/avx/benes.c | 0 .../kem}/mceliece/mceliece348864/avx/benes.h | 0 .../kem}/mceliece/mceliece348864/avx/bm.c | 0 .../kem}/mceliece/mceliece348864/avx/bm.h | 0 .../kem}/mceliece/mceliece348864/avx/consts.S | 0 .../mceliece/mceliece348864/avx/consts.inc | 0 .../mceliece/mceliece348864/avx/controlbits.c | 0 .../mceliece/mceliece348864/avx/controlbits.h | 0 .../mceliece/mceliece348864/avx/crypto_hash.h | 0 .../mceliece/mceliece348864/avx/decrypt.c | 0 .../mceliece/mceliece348864/avx/decrypt.h | 0 .../mceliece/mceliece348864/avx/encrypt.c | 0 .../mceliece/mceliece348864/avx/encrypt.h | 0 .../kem}/mceliece/mceliece348864/avx/fft.c | 0 .../kem}/mceliece/mceliece348864/avx/fft.h | 0 .../kem}/mceliece/mceliece348864/avx/fft_tr.c | 0 .../kem}/mceliece/mceliece348864/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece348864/avx/gf.c | 0 .../kem}/mceliece/mceliece348864/avx/gf.h | 0 .../mceliece/mceliece348864/avx/int32_sort.c | 0 .../mceliece/mceliece348864/avx/int32_sort.h | 0 .../mceliece/mceliece348864/avx/operations.c | 0 .../kem}/mceliece/mceliece348864/avx/params.h | 0 .../kem}/mceliece/mceliece348864/avx/pk_gen.c | 0 .../kem}/mceliece/mceliece348864/avx/pk_gen.h | 0 .../mceliece/mceliece348864/avx/powers.inc | 0 .../mceliece/mceliece348864/avx/scalars.inc | 0 .../mceliece348864/avx/scalars_2x.inc | 0 .../kem}/mceliece/mceliece348864/avx/sk_gen.c | 0 .../kem}/mceliece/mceliece348864/avx/sk_gen.h | 0 .../mceliece348864/avx/syndrome_asm.S | 0 .../mceliece/mceliece348864/avx/transpose.c | 0 .../mceliece/mceliece348864/avx/transpose.h | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece348864/avx/transpose_64x64_asm.S | 0 .../mceliece/mceliece348864/avx/uint32_sort.c | 0 .../mceliece/mceliece348864/avx/uint32_sort.h | 0 .../mceliece/mceliece348864/avx/update_asm.S | 0 .../kem}/mceliece/mceliece348864/avx/util.c | 0 .../kem}/mceliece/mceliece348864/avx/util.h | 0 .../kem}/mceliece/mceliece348864/avx/vec.c | 0 .../kem}/mceliece/mceliece348864/avx/vec.h | 0 .../kem}/mceliece/mceliece348864/avx/vec128.c | 0 .../kem}/mceliece/mceliece348864/avx/vec128.h | 0 .../mceliece348864/avx/vec128_mul_asm.S | 0 .../kem}/mceliece/mceliece348864/avx/vec256.c | 0 .../kem}/mceliece/mceliece348864/avx/vec256.h | 0 .../mceliece348864/avx/vec256_mul_asm.S | 0 .../mceliece/mceliece348864/avx/vec_mul_asm.S | 0 .../mceliece348864/avx/vec_mul_sp_asm.S | 0 .../mceliece348864/avx/vec_reduce_asm.S | 0 .../mceliece/mceliece348864/clean/aes256ctr.c | 0 .../mceliece/mceliece348864/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece348864/clean/api.h | 0 .../mceliece/mceliece348864/clean/benes.c | 0 .../mceliece/mceliece348864/clean/benes.h | 0 .../kem}/mceliece/mceliece348864/clean/bm.c | 0 .../kem}/mceliece/mceliece348864/clean/bm.h | 0 .../mceliece348864/clean/controlbits.c | 0 .../mceliece348864/clean/controlbits.h | 0 .../mceliece348864/clean/crypto_hash.h | 0 .../mceliece/mceliece348864/clean/decrypt.c | 0 .../mceliece/mceliece348864/clean/decrypt.h | 0 .../mceliece/mceliece348864/clean/encrypt.c | 0 .../mceliece/mceliece348864/clean/encrypt.h | 0 .../kem}/mceliece/mceliece348864/clean/gf.c | 0 .../kem}/mceliece/mceliece348864/clean/gf.h | 0 .../mceliece348864/clean/operations.c | 0 .../mceliece/mceliece348864/clean/params.h | 0 .../mceliece/mceliece348864/clean/pk_gen.c | 0 .../mceliece/mceliece348864/clean/pk_gen.h | 0 .../kem}/mceliece/mceliece348864/clean/root.c | 0 .../kem}/mceliece/mceliece348864/clean/root.h | 0 .../mceliece/mceliece348864/clean/sk_gen.c | 0 .../mceliece/mceliece348864/clean/sk_gen.h | 0 .../kem}/mceliece/mceliece348864/clean/synd.c | 0 .../kem}/mceliece/mceliece348864/clean/synd.h | 0 .../mceliece/mceliece348864/clean/transpose.c | 0 .../mceliece/mceliece348864/clean/transpose.h | 0 .../kem}/mceliece/mceliece348864/clean/util.c | 0 .../kem}/mceliece/mceliece348864/clean/util.h | 0 .../mceliece/mceliece348864f/avx/aes256ctr.c | 0 .../mceliece/mceliece348864f/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece348864f/avx/api.h | 0 .../kem}/mceliece/mceliece348864f/avx/benes.c | 0 .../kem}/mceliece/mceliece348864f/avx/benes.h | 0 .../kem}/mceliece/mceliece348864f/avx/bm.c | 0 .../kem}/mceliece/mceliece348864f/avx/bm.h | 0 .../mceliece/mceliece348864f/avx/consts.S | 0 .../mceliece/mceliece348864f/avx/consts.inc | 0 .../mceliece348864f/avx/controlbits.c | 0 .../mceliece348864f/avx/controlbits.h | 0 .../mceliece348864f/avx/crypto_hash.h | 0 .../mceliece/mceliece348864f/avx/decrypt.c | 0 .../mceliece/mceliece348864f/avx/decrypt.h | 0 .../mceliece/mceliece348864f/avx/encrypt.c | 0 .../mceliece/mceliece348864f/avx/encrypt.h | 0 .../kem}/mceliece/mceliece348864f/avx/fft.c | 0 .../kem}/mceliece/mceliece348864f/avx/fft.h | 0 .../mceliece/mceliece348864f/avx/fft_tr.c | 0 .../mceliece/mceliece348864f/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece348864f/avx/gf.c | 0 .../kem}/mceliece/mceliece348864f/avx/gf.h | 0 .../mceliece/mceliece348864f/avx/int32_sort.c | 0 .../mceliece/mceliece348864f/avx/int32_sort.h | 0 .../mceliece/mceliece348864f/avx/operations.c | 0 .../mceliece/mceliece348864f/avx/params.h | 0 .../mceliece/mceliece348864f/avx/pk_gen.c | 0 .../mceliece/mceliece348864f/avx/pk_gen.h | 0 .../mceliece/mceliece348864f/avx/powers.inc | 0 .../mceliece/mceliece348864f/avx}/scalars.inc | 0 .../mceliece348864f/avx/scalars_2x.inc | 0 .../mceliece/mceliece348864f/avx/sk_gen.c | 0 .../mceliece/mceliece348864f/avx/sk_gen.h | 0 .../mceliece348864f/avx/syndrome_asm.S | 0 .../mceliece/mceliece348864f/avx/transpose.c | 0 .../mceliece/mceliece348864f/avx/transpose.h | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece348864f/avx/transpose_64x64_asm.S | 0 .../mceliece348864f/avx/uint32_sort.c | 0 .../mceliece348864f/avx/uint32_sort.h | 0 .../mceliece/mceliece348864f/avx/update_asm.S | 0 .../kem}/mceliece/mceliece348864f/avx/util.c | 0 .../kem}/mceliece/mceliece348864f/avx/util.h | 0 .../kem}/mceliece/mceliece348864f/avx/vec.c | 0 .../kem}/mceliece/mceliece348864f/avx/vec.h | 0 .../mceliece/mceliece348864f/avx/vec128.c | 0 .../mceliece/mceliece348864f/avx/vec128.h | 0 .../mceliece348864f/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece348864f/avx/vec256.c | 0 .../mceliece/mceliece348864f/avx/vec256.h | 0 .../mceliece348864f/avx/vec256_mul_asm.S | 0 .../mceliece348864f/avx/vec_mul_asm.S | 0 .../mceliece348864f/avx/vec_mul_sp_asm.S | 0 .../mceliece348864f/avx/vec_reduce_asm.S | 0 .../mceliece348864f/clean/aes256ctr.c | 0 .../mceliece348864f/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece348864f/clean/api.h | 0 .../mceliece/mceliece348864f/clean/benes.c | 0 .../mceliece/mceliece348864f/clean/benes.h | 0 .../kem}/mceliece/mceliece348864f/clean/bm.c | 0 .../kem}/mceliece/mceliece348864f/clean/bm.h | 0 .../mceliece348864f/clean/controlbits.c | 0 .../mceliece348864f/clean/controlbits.h | 0 .../mceliece348864f/clean/crypto_hash.h | 0 .../mceliece/mceliece348864f/clean/decrypt.c | 0 .../mceliece/mceliece348864f/clean/decrypt.h | 0 .../mceliece/mceliece348864f/clean/encrypt.c | 0 .../mceliece/mceliece348864f/clean/encrypt.h | 0 .../kem}/mceliece/mceliece348864f/clean/gf.c | 0 .../kem}/mceliece/mceliece348864f/clean/gf.h | 0 .../mceliece348864f/clean/operations.c | 0 .../mceliece/mceliece348864f/clean/params.h | 0 .../mceliece/mceliece348864f/clean/pk_gen.c | 0 .../mceliece/mceliece348864f/clean/pk_gen.h | 0 .../mceliece/mceliece348864f/clean/root.c | 0 .../mceliece/mceliece348864f/clean/root.h | 0 .../mceliece/mceliece348864f/clean/sk_gen.c | 0 .../mceliece/mceliece348864f/clean/sk_gen.h | 0 .../mceliece/mceliece348864f/clean/synd.c | 0 .../mceliece/mceliece348864f/clean/synd.h | 0 .../mceliece348864f/clean/transpose.c | 0 .../mceliece348864f/clean/transpose.h | 0 .../mceliece/mceliece348864f/clean/util.c | 0 .../mceliece/mceliece348864f/clean/util.h | 0 .../mceliece/mceliece460896/avx/aes256ctr.c | 0 .../mceliece/mceliece460896/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece460896/avx/api.h | 0 .../kem}/mceliece/mceliece460896/avx/benes.c | 0 .../kem}/mceliece/mceliece460896/avx/benes.h | 0 .../kem}/mceliece/mceliece460896/avx/bm.c | 0 .../kem}/mceliece/mceliece460896/avx/bm.h | 0 .../kem}/mceliece/mceliece460896/avx/consts.S | 0 .../mceliece/mceliece460896/avx/consts.inc | 0 .../mceliece/mceliece460896/avx/controlbits.c | 0 .../mceliece/mceliece460896/avx/controlbits.h | 0 .../mceliece/mceliece460896/avx/crypto_hash.h | 0 .../mceliece/mceliece460896/avx/decrypt.c | 0 .../mceliece/mceliece460896/avx/decrypt.h | 0 .../mceliece/mceliece460896/avx/encrypt.c | 0 .../mceliece/mceliece460896/avx/encrypt.h | 0 .../kem}/mceliece/mceliece460896/avx/fft.c | 0 .../kem}/mceliece/mceliece460896/avx/fft.h | 0 .../kem}/mceliece/mceliece460896/avx/fft_tr.c | 0 .../kem}/mceliece/mceliece460896/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece460896/avx/gf.c | 0 .../kem}/mceliece/mceliece460896/avx/gf.h | 0 .../mceliece/mceliece460896/avx/int32_sort.c | 0 .../mceliece/mceliece460896/avx/int32_sort.h | 0 .../mceliece/mceliece460896/avx/operations.c | 0 .../kem}/mceliece/mceliece460896/avx/params.h | 0 .../kem}/mceliece/mceliece460896/avx/pk_gen.c | 0 .../kem}/mceliece/mceliece460896/avx/pk_gen.h | 0 .../mceliece460896/avx/scalars_2x.inc | 0 .../mceliece460896/avx/scalars_4x.inc | 0 .../kem}/mceliece/mceliece460896/avx/sk_gen.c | 0 .../kem}/mceliece/mceliece460896/avx/sk_gen.h | 0 .../mceliece460896/avx/syndrome_asm.S | 0 .../mceliece/mceliece460896/avx/transpose.c | 0 .../mceliece/mceliece460896/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece/mceliece460896/avx/uint32_sort.c | 0 .../mceliece/mceliece460896/avx/uint32_sort.h | 0 .../mceliece/mceliece460896/avx/update_asm.S | 0 .../kem}/mceliece/mceliece460896/avx/util.c | 0 .../kem}/mceliece/mceliece460896/avx/util.h | 0 .../kem}/mceliece/mceliece460896/avx/vec128.c | 0 .../kem}/mceliece/mceliece460896/avx/vec128.h | 0 .../mceliece460896/avx/vec128_mul_asm.S | 0 .../kem}/mceliece/mceliece460896/avx/vec256.c | 0 .../kem}/mceliece/mceliece460896/avx/vec256.h | 0 .../mceliece460896/avx/vec256_ama_asm.S | 0 .../mceliece460896/avx/vec256_maa_asm.S | 0 .../mceliece460896/avx/vec256_mul_asm.S | 0 .../mceliece460896/avx/vec_reduce_asm.S | 0 .../mceliece/mceliece460896/clean/aes256ctr.c | 0 .../mceliece/mceliece460896/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece460896/clean/api.h | 0 .../mceliece/mceliece460896/clean/benes.c | 0 .../mceliece/mceliece460896/clean/benes.h | 0 .../kem}/mceliece/mceliece460896/clean/bm.c | 0 .../kem}/mceliece/mceliece460896/clean/bm.h | 0 .../mceliece460896/clean/controlbits.c | 0 .../mceliece460896/clean/controlbits.h | 0 .../mceliece460896/clean/crypto_hash.h | 0 .../mceliece/mceliece460896/clean/decrypt.c | 0 .../mceliece/mceliece460896/clean/decrypt.h | 0 .../mceliece/mceliece460896/clean/encrypt.c | 0 .../mceliece/mceliece460896/clean/encrypt.h | 0 .../kem}/mceliece/mceliece460896/clean/gf.c | 0 .../kem}/mceliece/mceliece460896/clean/gf.h | 0 .../mceliece460896/clean/operations.c | 0 .../mceliece/mceliece460896/clean/params.h | 0 .../mceliece/mceliece460896/clean/pk_gen.c | 0 .../mceliece/mceliece460896/clean/pk_gen.h | 0 .../kem}/mceliece/mceliece460896/clean/root.c | 0 .../kem}/mceliece/mceliece460896/clean/root.h | 0 .../mceliece/mceliece460896/clean/sk_gen.c | 0 .../mceliece/mceliece460896/clean/sk_gen.h | 0 .../kem}/mceliece/mceliece460896/clean/synd.c | 0 .../kem}/mceliece/mceliece460896/clean/synd.h | 0 .../mceliece/mceliece460896/clean/transpose.c | 0 .../mceliece/mceliece460896/clean/transpose.h | 0 .../kem}/mceliece/mceliece460896/clean/util.c | 0 .../kem}/mceliece/mceliece460896/clean/util.h | 0 .../mceliece/mceliece460896f/avx/aes256ctr.c | 0 .../mceliece/mceliece460896f/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece460896f/avx/api.h | 0 .../kem}/mceliece/mceliece460896f/avx/benes.c | 0 .../kem}/mceliece/mceliece460896f/avx/benes.h | 0 .../kem}/mceliece/mceliece460896f/avx/bm.c | 0 .../kem}/mceliece/mceliece460896f/avx/bm.h | 0 .../mceliece/mceliece460896f/avx/consts.S | 0 .../mceliece/mceliece460896f/avx/consts.inc | 0 .../mceliece460896f/avx/controlbits.c | 0 .../mceliece460896f/avx/controlbits.h | 0 .../mceliece460896f/avx/crypto_hash.h | 0 .../mceliece/mceliece460896f/avx/decrypt.c | 0 .../mceliece/mceliece460896f/avx/decrypt.h | 0 .../mceliece/mceliece460896f/avx/encrypt.c | 0 .../mceliece/mceliece460896f/avx/encrypt.h | 0 .../kem}/mceliece/mceliece460896f/avx/fft.c | 0 .../kem}/mceliece/mceliece460896f/avx/fft.h | 0 .../mceliece/mceliece460896f/avx/fft_tr.c | 0 .../mceliece/mceliece460896f/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece460896f/avx/gf.c | 0 .../kem}/mceliece/mceliece460896f/avx/gf.h | 0 .../mceliece/mceliece460896f/avx/int32_sort.c | 0 .../mceliece/mceliece460896f/avx/int32_sort.h | 0 .../mceliece/mceliece460896f/avx/operations.c | 0 .../mceliece/mceliece460896f/avx/params.h | 0 .../mceliece/mceliece460896f/avx/pk_gen.c | 0 .../mceliece/mceliece460896f/avx/pk_gen.h | 0 .../mceliece460896f/avx/scalars_2x.inc | 0 .../mceliece460896f/avx/scalars_4x.inc | 0 .../mceliece/mceliece460896f/avx/sk_gen.c | 0 .../mceliece/mceliece460896f/avx/sk_gen.h | 0 .../mceliece460896f/avx/syndrome_asm.S | 0 .../mceliece/mceliece460896f/avx/transpose.c | 0 .../mceliece/mceliece460896f/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece460896f/avx/uint32_sort.c | 0 .../mceliece460896f/avx/uint32_sort.h | 0 .../mceliece/mceliece460896f/avx/update_asm.S | 0 .../kem}/mceliece/mceliece460896f/avx/util.c | 0 .../kem}/mceliece/mceliece460896f/avx/util.h | 0 .../mceliece/mceliece460896f/avx/vec128.c | 0 .../mceliece/mceliece460896f/avx/vec128.h | 0 .../mceliece460896f/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece460896f/avx/vec256.c | 0 .../mceliece/mceliece460896f/avx/vec256.h | 0 .../mceliece460896f/avx/vec256_ama_asm.S | 0 .../mceliece460896f/avx/vec256_maa_asm.S | 0 .../mceliece460896f/avx/vec256_mul_asm.S | 0 .../mceliece460896f/avx/vec_reduce_asm.S | 0 .../mceliece460896f/clean/aes256ctr.c | 0 .../mceliece460896f/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece460896f/clean/api.h | 0 .../mceliece/mceliece460896f/clean/benes.c | 0 .../mceliece/mceliece460896f/clean/benes.h | 0 .../kem}/mceliece/mceliece460896f/clean/bm.c | 0 .../kem}/mceliece/mceliece460896f/clean/bm.h | 0 .../mceliece460896f/clean/controlbits.c | 0 .../mceliece460896f/clean/controlbits.h | 0 .../mceliece460896f/clean/crypto_hash.h | 0 .../mceliece/mceliece460896f/clean/decrypt.c | 0 .../mceliece/mceliece460896f/clean/decrypt.h | 0 .../mceliece/mceliece460896f/clean/encrypt.c | 0 .../mceliece/mceliece460896f/clean/encrypt.h | 0 .../kem}/mceliece/mceliece460896f/clean/gf.c | 0 .../kem}/mceliece/mceliece460896f/clean/gf.h | 0 .../mceliece460896f/clean/operations.c | 0 .../mceliece/mceliece460896f/clean/params.h | 0 .../mceliece/mceliece460896f/clean/pk_gen.c | 0 .../mceliece/mceliece460896f/clean/pk_gen.h | 0 .../mceliece/mceliece460896f/clean/root.c | 0 .../mceliece/mceliece460896f/clean/root.h | 0 .../mceliece/mceliece460896f/clean/sk_gen.c | 0 .../mceliece/mceliece460896f/clean/sk_gen.h | 0 .../mceliece/mceliece460896f/clean/synd.c | 0 .../mceliece/mceliece460896f/clean/synd.h | 0 .../mceliece460896f/clean/transpose.c | 0 .../mceliece460896f/clean/transpose.h | 0 .../mceliece/mceliece460896f/clean/util.c | 0 .../mceliece/mceliece460896f/clean/util.h | 0 .../mceliece/mceliece6688128/avx/aes256ctr.c | 0 .../mceliece/mceliece6688128/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece6688128/avx/api.h | 0 .../kem}/mceliece/mceliece6688128/avx/benes.c | 0 .../kem}/mceliece/mceliece6688128/avx/benes.h | 0 .../kem}/mceliece/mceliece6688128/avx/bm.c | 0 .../kem}/mceliece/mceliece6688128/avx/bm.h | 0 .../mceliece/mceliece6688128/avx/consts.S | 0 .../mceliece/mceliece6688128/avx/consts.inc | 0 .../mceliece6688128/avx/controlbits.c | 0 .../mceliece6688128/avx/controlbits.h | 0 .../mceliece6688128/avx/crypto_hash.h | 0 .../mceliece/mceliece6688128/avx/decrypt.c | 0 .../mceliece/mceliece6688128/avx/decrypt.h | 0 .../mceliece/mceliece6688128/avx/encrypt.c | 0 .../mceliece/mceliece6688128/avx/encrypt.h | 0 .../kem}/mceliece/mceliece6688128/avx/fft.c | 0 .../kem}/mceliece/mceliece6688128/avx/fft.h | 0 .../mceliece/mceliece6688128/avx/fft_tr.c | 0 .../mceliece/mceliece6688128/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece6688128/avx/gf.c | 0 .../kem}/mceliece/mceliece6688128/avx/gf.h | 0 .../mceliece/mceliece6688128/avx/int32_sort.c | 0 .../mceliece/mceliece6688128/avx/int32_sort.h | 0 .../mceliece/mceliece6688128/avx/operations.c | 0 .../mceliece/mceliece6688128/avx/params.h | 0 .../mceliece/mceliece6688128/avx/pk_gen.c | 0 .../mceliece/mceliece6688128/avx/pk_gen.h | 0 .../mceliece/mceliece6688128/avx/powers.inc | 0 .../mceliece6688128/avx/scalars_2x.inc | 0 .../mceliece6688128/avx/scalars_4x.inc | 0 .../mceliece/mceliece6688128/avx/sk_gen.c | 0 .../mceliece/mceliece6688128/avx/sk_gen.h | 0 .../mceliece6688128/avx/syndrome_asm.S | 0 .../mceliece/mceliece6688128/avx/transpose.c | 0 .../mceliece/mceliece6688128/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece6688128/avx/uint32_sort.c | 0 .../mceliece6688128/avx/uint32_sort.h | 0 .../mceliece/mceliece6688128/avx/update_asm.S | 0 .../kem}/mceliece/mceliece6688128/avx/util.c | 0 .../kem}/mceliece/mceliece6688128/avx/util.h | 0 .../mceliece/mceliece6688128/avx/vec128.c | 0 .../mceliece/mceliece6688128/avx/vec128.h | 0 .../mceliece6688128/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece6688128/avx/vec256.c | 0 .../mceliece/mceliece6688128/avx/vec256.h | 0 .../mceliece6688128/avx/vec256_ama_asm.S | 0 .../mceliece6688128/avx/vec256_maa_asm.S | 0 .../mceliece6688128/avx/vec256_mul_asm.S | 0 .../mceliece6688128/avx/vec_reduce_asm.S | 0 .../mceliece6688128/clean/aes256ctr.c | 0 .../mceliece6688128/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece6688128/clean/api.h | 0 .../mceliece/mceliece6688128/clean/benes.c | 0 .../mceliece/mceliece6688128/clean/benes.h | 0 .../kem}/mceliece/mceliece6688128/clean/bm.c | 0 .../kem}/mceliece/mceliece6688128/clean/bm.h | 0 .../mceliece6688128/clean/controlbits.c | 0 .../mceliece6688128/clean/controlbits.h | 0 .../mceliece6688128/clean/crypto_hash.h | 0 .../mceliece/mceliece6688128/clean/decrypt.c | 0 .../mceliece/mceliece6688128/clean/decrypt.h | 0 .../mceliece/mceliece6688128/clean/encrypt.c | 0 .../mceliece/mceliece6688128/clean/encrypt.h | 0 .../kem}/mceliece/mceliece6688128/clean/gf.c | 0 .../kem}/mceliece/mceliece6688128/clean/gf.h | 0 .../mceliece6688128/clean/operations.c | 0 .../mceliece/mceliece6688128/clean/params.h | 0 .../mceliece/mceliece6688128/clean/pk_gen.c | 0 .../mceliece/mceliece6688128/clean/pk_gen.h | 0 .../mceliece/mceliece6688128/clean/root.c | 0 .../mceliece/mceliece6688128/clean/root.h | 0 .../mceliece/mceliece6688128/clean/sk_gen.c | 0 .../mceliece/mceliece6688128/clean/sk_gen.h | 0 .../mceliece/mceliece6688128/clean/synd.c | 0 .../mceliece/mceliece6688128/clean/synd.h | 0 .../mceliece6688128/clean/transpose.c | 0 .../mceliece6688128/clean/transpose.h | 0 .../mceliece/mceliece6688128/clean/util.c | 0 .../mceliece/mceliece6688128/clean/util.h | 0 .../mceliece/mceliece6688128f/avx/aes256ctr.c | 0 .../mceliece/mceliece6688128f/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece6688128f/avx/api.h | 0 .../mceliece/mceliece6688128f/avx/benes.c | 0 .../mceliece/mceliece6688128f/avx/benes.h | 0 .../kem}/mceliece/mceliece6688128f/avx/bm.c | 0 .../kem}/mceliece/mceliece6688128f/avx/bm.h | 0 .../mceliece/mceliece6688128f/avx/consts.S | 0 .../mceliece/mceliece6688128f/avx/consts.inc | 0 .../mceliece6688128f/avx/controlbits.c | 0 .../mceliece6688128f/avx/controlbits.h | 0 .../mceliece6688128f/avx/crypto_hash.h | 0 .../mceliece/mceliece6688128f/avx/decrypt.c | 0 .../mceliece/mceliece6688128f/avx/decrypt.h | 0 .../mceliece/mceliece6688128f/avx/encrypt.c | 0 .../mceliece/mceliece6688128f/avx/encrypt.h | 0 .../kem}/mceliece/mceliece6688128f/avx/fft.c | 0 .../kem}/mceliece/mceliece6688128f/avx/fft.h | 0 .../mceliece/mceliece6688128f/avx/fft_tr.c | 0 .../mceliece/mceliece6688128f/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece6688128f/avx/gf.c | 0 .../kem}/mceliece/mceliece6688128f/avx/gf.h | 0 .../mceliece6688128f/avx/int32_sort.c | 0 .../mceliece6688128f/avx/int32_sort.h | 0 .../mceliece6688128f/avx/operations.c | 0 .../mceliece/mceliece6688128f/avx/params.h | 0 .../mceliece/mceliece6688128f/avx/pk_gen.c | 0 .../mceliece/mceliece6688128f/avx/pk_gen.h | 0 .../mceliece/mceliece6688128f/avx/powers.inc | 0 .../mceliece6688128f/avx/scalars_2x.inc | 0 .../mceliece6688128f/avx/scalars_4x.inc | 0 .../mceliece/mceliece6688128f/avx/sk_gen.c | 0 .../mceliece/mceliece6688128f/avx/sk_gen.h | 0 .../mceliece6688128f/avx/syndrome_asm.S | 0 .../mceliece/mceliece6688128f/avx/transpose.c | 0 .../mceliece/mceliece6688128f/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece6688128f/avx/uint32_sort.c | 0 .../mceliece6688128f/avx/uint32_sort.h | 0 .../mceliece6688128f/avx/update_asm.S | 0 .../kem}/mceliece/mceliece6688128f/avx/util.c | 0 .../kem}/mceliece/mceliece6688128f/avx/util.h | 0 .../mceliece/mceliece6688128f/avx/vec128.c | 0 .../mceliece/mceliece6688128f/avx/vec128.h | 0 .../mceliece6688128f/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece6688128f/avx/vec256.c | 0 .../mceliece/mceliece6688128f/avx/vec256.h | 0 .../mceliece6688128f/avx/vec256_ama_asm.S | 0 .../mceliece6688128f/avx/vec256_maa_asm.S | 0 .../mceliece6688128f/avx/vec256_mul_asm.S | 0 .../mceliece6688128f/avx/vec_reduce_asm.S | 0 .../mceliece6688128f/clean/aes256ctr.c | 0 .../mceliece6688128f/clean/aes256ctr.h | 0 .../mceliece/mceliece6688128f/clean/api.h | 0 .../mceliece/mceliece6688128f/clean/benes.c | 0 .../mceliece/mceliece6688128f/clean/benes.h | 0 .../kem}/mceliece/mceliece6688128f/clean/bm.c | 0 .../kem}/mceliece/mceliece6688128f/clean/bm.h | 0 .../mceliece6688128f/clean/controlbits.c | 0 .../mceliece6688128f/clean/controlbits.h | 0 .../mceliece6688128f/clean/crypto_hash.h | 0 .../mceliece/mceliece6688128f/clean/decrypt.c | 0 .../mceliece/mceliece6688128f/clean/decrypt.h | 0 .../mceliece/mceliece6688128f/clean/encrypt.c | 0 .../mceliece/mceliece6688128f/clean/encrypt.h | 0 .../kem}/mceliece/mceliece6688128f/clean/gf.c | 0 .../kem}/mceliece/mceliece6688128f/clean/gf.h | 0 .../mceliece6688128f/clean/operations.c | 0 .../mceliece/mceliece6688128f/clean/params.h | 0 .../mceliece/mceliece6688128f/clean/pk_gen.c | 0 .../mceliece/mceliece6688128f/clean/pk_gen.h | 0 .../mceliece/mceliece6688128f/clean/root.c | 0 .../mceliece/mceliece6688128f/clean/root.h | 0 .../mceliece/mceliece6688128f/clean/sk_gen.c | 0 .../mceliece/mceliece6688128f/clean/sk_gen.h | 0 .../mceliece/mceliece6688128f/clean/synd.c | 0 .../mceliece/mceliece6688128f/clean/synd.h | 0 .../mceliece6688128f/clean/transpose.c | 0 .../mceliece6688128f/clean/transpose.h | 0 .../mceliece/mceliece6688128f/clean/util.c | 0 .../mceliece/mceliece6688128f/clean/util.h | 0 .../mceliece/mceliece6960119/avx/aes256ctr.c | 0 .../mceliece/mceliece6960119/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece6960119/avx/api.h | 0 .../kem}/mceliece/mceliece6960119/avx/benes.c | 0 .../kem}/mceliece/mceliece6960119/avx/benes.h | 0 .../kem}/mceliece/mceliece6960119/avx/bm.c | 0 .../kem}/mceliece/mceliece6960119/avx/bm.h | 0 .../mceliece/mceliece6960119/avx/consts.S | 0 .../mceliece/mceliece6960119/avx/consts.inc | 0 .../mceliece6960119/avx/controlbits.c | 0 .../mceliece6960119/avx/controlbits.h | 0 .../mceliece6960119/avx/crypto_hash.h | 0 .../mceliece/mceliece6960119/avx/decrypt.c | 0 .../mceliece/mceliece6960119/avx/decrypt.h | 0 .../mceliece/mceliece6960119/avx/encrypt.c | 0 .../mceliece/mceliece6960119/avx/encrypt.h | 0 .../kem}/mceliece/mceliece6960119/avx/fft.c | 0 .../kem}/mceliece/mceliece6960119/avx/fft.h | 0 .../mceliece/mceliece6960119/avx/fft_tr.c | 0 .../mceliece/mceliece6960119/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece6960119/avx/gf.c | 0 .../kem}/mceliece/mceliece6960119/avx/gf.h | 0 .../mceliece/mceliece6960119/avx/int32_sort.c | 0 .../mceliece/mceliece6960119/avx/int32_sort.h | 0 .../mceliece/mceliece6960119/avx/operations.c | 0 .../mceliece/mceliece6960119/avx/params.h | 0 .../mceliece/mceliece6960119/avx/pk_gen.c | 0 .../mceliece/mceliece6960119/avx/pk_gen.h | 0 .../mceliece6960119/avx/scalars_2x.inc | 0 .../mceliece6960119/avx/scalars_4x.inc | 0 .../mceliece/mceliece6960119/avx/sk_gen.c | 0 .../mceliece/mceliece6960119/avx/sk_gen.h | 0 .../mceliece6960119/avx/syndrome_asm.S | 0 .../mceliece/mceliece6960119/avx/transpose.c | 0 .../mceliece/mceliece6960119/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece6960119/avx/uint32_sort.c | 0 .../mceliece6960119/avx/uint32_sort.h | 0 .../mceliece/mceliece6960119/avx/update_asm.S | 0 .../kem}/mceliece/mceliece6960119/avx/util.c | 0 .../kem}/mceliece/mceliece6960119/avx/util.h | 0 .../mceliece/mceliece6960119/avx/vec128.c | 0 .../mceliece/mceliece6960119/avx/vec128.h | 0 .../mceliece6960119/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece6960119/avx/vec256.c | 0 .../mceliece/mceliece6960119/avx/vec256.h | 0 .../mceliece6960119/avx/vec256_ama_asm.S | 0 .../mceliece6960119/avx/vec256_maa_asm.S | 0 .../mceliece6960119/avx/vec256_mul_asm.S | 0 .../mceliece6960119/avx/vec_reduce_asm.S | 0 .../mceliece6960119/clean/aes256ctr.c | 0 .../mceliece6960119/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece6960119/clean/api.h | 0 .../mceliece/mceliece6960119/clean/benes.c | 0 .../mceliece/mceliece6960119/clean/benes.h | 0 .../kem}/mceliece/mceliece6960119/clean/bm.c | 0 .../kem}/mceliece/mceliece6960119/clean/bm.h | 0 .../mceliece6960119/clean/controlbits.c | 0 .../mceliece6960119/clean/controlbits.h | 0 .../mceliece6960119/clean/crypto_hash.h | 0 .../mceliece/mceliece6960119/clean/decrypt.c | 0 .../mceliece/mceliece6960119/clean/decrypt.h | 0 .../mceliece/mceliece6960119/clean/encrypt.c | 0 .../mceliece/mceliece6960119/clean/encrypt.h | 0 .../kem}/mceliece/mceliece6960119/clean/gf.c | 0 .../kem}/mceliece/mceliece6960119/clean/gf.h | 0 .../mceliece6960119/clean/operations.c | 0 .../mceliece/mceliece6960119/clean/params.h | 0 .../mceliece/mceliece6960119/clean/pk_gen.c | 0 .../mceliece/mceliece6960119/clean/pk_gen.h | 0 .../mceliece/mceliece6960119/clean/root.c | 0 .../mceliece/mceliece6960119/clean/root.h | 0 .../mceliece/mceliece6960119/clean/sk_gen.c | 0 .../mceliece/mceliece6960119/clean/sk_gen.h | 0 .../mceliece/mceliece6960119/clean/synd.c | 0 .../mceliece/mceliece6960119/clean/synd.h | 0 .../mceliece6960119/clean/transpose.c | 0 .../mceliece6960119/clean/transpose.h | 0 .../mceliece/mceliece6960119/clean/util.c | 0 .../mceliece/mceliece6960119/clean/util.h | 0 .../mceliece/mceliece6960119f/avx/aes256ctr.c | 0 .../mceliece/mceliece6960119f/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece6960119f/avx/api.h | 0 .../mceliece/mceliece6960119f/avx/benes.c | 0 .../mceliece/mceliece6960119f/avx/benes.h | 0 .../kem}/mceliece/mceliece6960119f/avx/bm.c | 0 .../kem}/mceliece/mceliece6960119f/avx/bm.h | 0 .../mceliece/mceliece6960119f/avx/consts.S | 0 .../mceliece/mceliece6960119f/avx/consts.inc | 0 .../mceliece6960119f/avx/controlbits.c | 0 .../mceliece6960119f/avx/controlbits.h | 0 .../mceliece6960119f/avx/crypto_hash.h | 0 .../mceliece/mceliece6960119f/avx/decrypt.c | 0 .../mceliece/mceliece6960119f/avx/decrypt.h | 0 .../mceliece/mceliece6960119f/avx/encrypt.c | 0 .../mceliece/mceliece6960119f/avx/encrypt.h | 0 .../kem}/mceliece/mceliece6960119f/avx/fft.c | 0 .../kem}/mceliece/mceliece6960119f/avx/fft.h | 0 .../mceliece/mceliece6960119f/avx/fft_tr.c | 0 .../mceliece/mceliece6960119f/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece6960119f/avx/gf.c | 0 .../kem}/mceliece/mceliece6960119f/avx/gf.h | 0 .../mceliece6960119f/avx/int32_sort.c | 0 .../mceliece6960119f/avx/int32_sort.h | 0 .../mceliece6960119f/avx/operations.c | 0 .../mceliece/mceliece6960119f/avx/params.h | 0 .../mceliece/mceliece6960119f/avx/pk_gen.c | 0 .../mceliece/mceliece6960119f/avx/pk_gen.h | 0 .../mceliece6960119f/avx/scalars_2x.inc | 0 .../mceliece6960119f/avx/scalars_4x.inc | 0 .../mceliece/mceliece6960119f/avx/sk_gen.c | 0 .../mceliece/mceliece6960119f/avx/sk_gen.h | 0 .../mceliece6960119f/avx/syndrome_asm.S | 0 .../mceliece/mceliece6960119f/avx/transpose.c | 0 .../mceliece/mceliece6960119f/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece6960119f/avx/uint32_sort.c | 0 .../mceliece6960119f/avx/uint32_sort.h | 0 .../mceliece6960119f/avx/update_asm.S | 0 .../kem}/mceliece/mceliece6960119f/avx/util.c | 0 .../kem}/mceliece/mceliece6960119f/avx/util.h | 0 .../mceliece/mceliece6960119f/avx/vec128.c | 0 .../mceliece/mceliece6960119f/avx/vec128.h | 0 .../mceliece6960119f/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece6960119f/avx/vec256.c | 0 .../mceliece/mceliece6960119f/avx/vec256.h | 0 .../mceliece6960119f/avx/vec256_ama_asm.S | 0 .../mceliece6960119f/avx/vec256_maa_asm.S | 0 .../mceliece6960119f/avx/vec256_mul_asm.S | 0 .../mceliece6960119f/avx/vec_reduce_asm.S | 0 .../mceliece6960119f/clean/aes256ctr.c | 0 .../mceliece6960119f/clean/aes256ctr.h | 0 .../mceliece/mceliece6960119f/clean/api.h | 0 .../mceliece/mceliece6960119f/clean/benes.c | 0 .../mceliece/mceliece6960119f/clean/benes.h | 0 .../kem}/mceliece/mceliece6960119f/clean/bm.c | 0 .../kem}/mceliece/mceliece6960119f/clean/bm.h | 0 .../mceliece6960119f/clean/controlbits.c | 0 .../mceliece6960119f/clean/controlbits.h | 0 .../mceliece6960119f/clean/crypto_hash.h | 0 .../mceliece/mceliece6960119f/clean/decrypt.c | 0 .../mceliece/mceliece6960119f/clean/decrypt.h | 0 .../mceliece/mceliece6960119f/clean/encrypt.c | 0 .../mceliece/mceliece6960119f/clean/encrypt.h | 0 .../kem}/mceliece/mceliece6960119f/clean/gf.c | 0 .../kem}/mceliece/mceliece6960119f/clean/gf.h | 0 .../mceliece6960119f/clean/operations.c | 0 .../mceliece/mceliece6960119f/clean/params.h | 0 .../mceliece/mceliece6960119f/clean/pk_gen.c | 0 .../mceliece/mceliece6960119f/clean/pk_gen.h | 0 .../mceliece/mceliece6960119f/clean/root.c | 0 .../mceliece/mceliece6960119f/clean/root.h | 0 .../mceliece/mceliece6960119f/clean/sk_gen.c | 0 .../mceliece/mceliece6960119f/clean/sk_gen.h | 0 .../mceliece/mceliece6960119f/clean/synd.c | 0 .../mceliece/mceliece6960119f/clean/synd.h | 0 .../mceliece6960119f/clean/transpose.c | 0 .../mceliece6960119f/clean/transpose.h | 0 .../mceliece/mceliece6960119f/clean/util.c | 0 .../mceliece/mceliece6960119f/clean/util.h | 0 .../mceliece/mceliece8192128/avx/aes256ctr.c | 0 .../mceliece/mceliece8192128/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece8192128/avx/api.h | 0 .../kem}/mceliece/mceliece8192128/avx/benes.c | 0 .../kem}/mceliece/mceliece8192128/avx/benes.h | 0 .../kem}/mceliece/mceliece8192128/avx/bm.c | 0 .../kem}/mceliece/mceliece8192128/avx/bm.h | 0 .../mceliece/mceliece8192128/avx/consts.S | 0 .../mceliece/mceliece8192128/avx/consts.inc | 0 .../mceliece8192128/avx/controlbits.c | 0 .../mceliece8192128/avx/controlbits.h | 0 .../mceliece8192128/avx/crypto_hash.h | 0 .../mceliece/mceliece8192128/avx/decrypt.c | 0 .../mceliece/mceliece8192128/avx/decrypt.h | 0 .../mceliece/mceliece8192128/avx/encrypt.c | 0 .../mceliece/mceliece8192128/avx/encrypt.h | 0 .../kem}/mceliece/mceliece8192128/avx/fft.c | 0 .../kem}/mceliece/mceliece8192128/avx/fft.h | 0 .../mceliece/mceliece8192128/avx/fft_tr.c | 0 .../mceliece/mceliece8192128/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece8192128/avx/gf.c | 0 .../kem}/mceliece/mceliece8192128/avx/gf.h | 0 .../mceliece/mceliece8192128/avx/int32_sort.c | 0 .../mceliece/mceliece8192128/avx/int32_sort.h | 0 .../mceliece/mceliece8192128/avx/operations.c | 0 .../mceliece/mceliece8192128/avx/params.h | 0 .../mceliece/mceliece8192128/avx/pk_gen.c | 0 .../mceliece/mceliece8192128/avx/pk_gen.h | 0 .../mceliece/mceliece8192128/avx/powers.inc | 0 .../mceliece8192128/avx/scalars_2x.inc | 0 .../mceliece8192128/avx/scalars_4x.inc | 0 .../mceliece/mceliece8192128/avx/sk_gen.c | 0 .../mceliece/mceliece8192128/avx/sk_gen.h | 0 .../mceliece8192128/avx/syndrome_asm.S | 0 .../mceliece/mceliece8192128/avx/transpose.c | 0 .../mceliece/mceliece8192128/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece8192128/avx/uint32_sort.c | 0 .../mceliece8192128/avx/uint32_sort.h | 0 .../mceliece/mceliece8192128/avx/update_asm.S | 0 .../kem}/mceliece/mceliece8192128/avx/util.c | 0 .../kem}/mceliece/mceliece8192128/avx/util.h | 0 .../mceliece/mceliece8192128/avx/vec128.c | 0 .../mceliece/mceliece8192128/avx/vec128.h | 0 .../mceliece8192128/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece8192128/avx/vec256.c | 0 .../mceliece/mceliece8192128/avx/vec256.h | 0 .../mceliece8192128/avx/vec256_ama_asm.S | 0 .../mceliece8192128/avx/vec256_maa_asm.S | 0 .../mceliece8192128/avx/vec256_mul_asm.S | 0 .../mceliece8192128/avx/vec_reduce_asm.S | 0 .../mceliece8192128/clean/aes256ctr.c | 0 .../mceliece8192128/clean/aes256ctr.h | 0 .../kem}/mceliece/mceliece8192128/clean/api.h | 0 .../mceliece/mceliece8192128/clean/benes.c | 0 .../mceliece/mceliece8192128/clean/benes.h | 0 .../kem}/mceliece/mceliece8192128/clean/bm.c | 0 .../kem}/mceliece/mceliece8192128/clean/bm.h | 0 .../mceliece8192128/clean/controlbits.c | 0 .../mceliece8192128/clean/controlbits.h | 0 .../mceliece8192128/clean/crypto_hash.h | 0 .../mceliece/mceliece8192128/clean/decrypt.c | 0 .../mceliece/mceliece8192128/clean/decrypt.h | 0 .../mceliece/mceliece8192128/clean/encrypt.c | 0 .../mceliece/mceliece8192128/clean/encrypt.h | 0 .../kem}/mceliece/mceliece8192128/clean/gf.c | 0 .../kem}/mceliece/mceliece8192128/clean/gf.h | 0 .../mceliece8192128/clean/operations.c | 0 .../mceliece/mceliece8192128/clean/params.h | 0 .../mceliece/mceliece8192128/clean/pk_gen.c | 0 .../mceliece/mceliece8192128/clean/pk_gen.h | 0 .../mceliece/mceliece8192128/clean/root.c | 0 .../mceliece/mceliece8192128/clean/root.h | 0 .../mceliece/mceliece8192128/clean/sk_gen.c | 0 .../mceliece/mceliece8192128/clean/sk_gen.h | 0 .../mceliece/mceliece8192128/clean/synd.c | 0 .../mceliece/mceliece8192128/clean/synd.h | 0 .../mceliece8192128/clean/transpose.c | 0 .../mceliece8192128/clean/transpose.h | 0 .../mceliece/mceliece8192128/clean/util.c | 0 .../mceliece/mceliece8192128/clean/util.h | 0 .../mceliece/mceliece8192128f/avx/aes256ctr.c | 0 .../mceliece/mceliece8192128f/avx/aes256ctr.h | 0 .../kem}/mceliece/mceliece8192128f/avx/api.h | 0 .../mceliece/mceliece8192128f/avx/benes.c | 0 .../mceliece/mceliece8192128f/avx/benes.h | 0 .../kem}/mceliece/mceliece8192128f/avx/bm.c | 0 .../kem}/mceliece/mceliece8192128f/avx/bm.h | 0 .../mceliece/mceliece8192128f/avx/consts.S | 0 .../mceliece/mceliece8192128f/avx/consts.inc | 0 .../mceliece8192128f/avx/controlbits.c | 0 .../mceliece8192128f/avx/controlbits.h | 0 .../mceliece8192128f/avx/crypto_hash.h | 0 .../mceliece/mceliece8192128f/avx/decrypt.c | 0 .../mceliece/mceliece8192128f/avx/decrypt.h | 0 .../mceliece/mceliece8192128f/avx/encrypt.c | 0 .../mceliece/mceliece8192128f/avx/encrypt.h | 0 .../kem}/mceliece/mceliece8192128f/avx/fft.c | 0 .../kem}/mceliece/mceliece8192128f/avx/fft.h | 0 .../mceliece/mceliece8192128f/avx/fft_tr.c | 0 .../mceliece/mceliece8192128f/avx/fft_tr.h | 0 .../kem}/mceliece/mceliece8192128f/avx/gf.c | 0 .../kem}/mceliece/mceliece8192128f/avx/gf.h | 0 .../mceliece8192128f/avx/int32_sort.c | 0 .../mceliece8192128f/avx/int32_sort.h | 0 .../mceliece8192128f/avx/operations.c | 0 .../mceliece/mceliece8192128f/avx/params.h | 0 .../mceliece/mceliece8192128f/avx/pk_gen.c | 0 .../mceliece/mceliece8192128f/avx/pk_gen.h | 0 .../mceliece/mceliece8192128f/avx/powers.inc | 0 .../mceliece8192128f/avx/scalars_2x.inc | 0 .../mceliece8192128f/avx/scalars_4x.inc | 0 .../mceliece/mceliece8192128f/avx/sk_gen.c | 0 .../mceliece/mceliece8192128f/avx/sk_gen.h | 0 .../mceliece8192128f/avx/syndrome_asm.S | 0 .../mceliece/mceliece8192128f/avx/transpose.c | 0 .../mceliece/mceliece8192128f/avx/transpose.h | 0 .../avx/transpose_64x128_sp_asm.S | 0 .../avx/transpose_64x256_sp_asm.S | 0 .../mceliece8192128f/avx/uint32_sort.c | 0 .../mceliece8192128f/avx/uint32_sort.h | 0 .../mceliece8192128f/avx/update_asm.S | 0 .../kem}/mceliece/mceliece8192128f/avx/util.c | 0 .../kem}/mceliece/mceliece8192128f/avx/util.h | 0 .../mceliece/mceliece8192128f/avx/vec128.c | 0 .../mceliece/mceliece8192128f/avx/vec128.h | 0 .../mceliece8192128f/avx/vec128_mul_asm.S | 0 .../mceliece/mceliece8192128f/avx/vec256.c | 0 .../mceliece/mceliece8192128f/avx/vec256.h | 0 .../mceliece8192128f/avx/vec256_ama_asm.S | 0 .../mceliece8192128f/avx/vec256_maa_asm.S | 0 .../mceliece8192128f/avx/vec256_mul_asm.S | 0 .../mceliece8192128f/avx/vec_reduce_asm.S | 0 .../mceliece8192128f/clean/aes256ctr.c | 0 .../mceliece8192128f/clean/aes256ctr.h | 0 .../mceliece/mceliece8192128f/clean/api.h | 0 .../mceliece/mceliece8192128f/clean/benes.c | 0 .../mceliece/mceliece8192128f/clean/benes.h | 0 .../kem}/mceliece/mceliece8192128f/clean/bm.c | 0 .../kem}/mceliece/mceliece8192128f/clean/bm.h | 0 .../mceliece8192128f/clean/controlbits.c | 0 .../mceliece8192128f/clean/controlbits.h | 0 .../mceliece8192128f/clean/crypto_hash.h | 0 .../mceliece/mceliece8192128f/clean/decrypt.c | 0 .../mceliece/mceliece8192128f/clean/decrypt.h | 0 .../mceliece/mceliece8192128f/clean/encrypt.c | 0 .../mceliece/mceliece8192128f/clean/encrypt.h | 0 .../kem}/mceliece/mceliece8192128f/clean/gf.c | 0 .../kem}/mceliece/mceliece8192128f/clean/gf.h | 0 .../mceliece8192128f/clean/operations.c | 0 .../mceliece/mceliece8192128f/clean/params.h | 0 .../mceliece/mceliece8192128f/clean/pk_gen.c | 0 .../mceliece/mceliece8192128f/clean/pk_gen.h | 0 .../mceliece/mceliece8192128f/clean/root.c | 0 .../mceliece/mceliece8192128f/clean/root.h | 0 .../mceliece/mceliece8192128f/clean/sk_gen.c | 0 .../mceliece/mceliece8192128f/clean/sk_gen.h | 0 .../mceliece/mceliece8192128f/clean/synd.c | 0 .../mceliece/mceliece8192128f/clean/synd.h | 0 .../mceliece8192128f/clean/transpose.c | 0 .../mceliece8192128f/clean/transpose.h | 0 .../mceliece/mceliece8192128f/clean/util.c | 0 .../mceliece/mceliece8192128f/clean/util.h | 0 .../ntru/ntruhps2048509/avx2/CMakeLists.txt | 32 + .../kem}/ntru/ntruhps2048509/avx2/api.h | 0 .../kem}/ntru/ntruhps2048509/avx2/cmov.c | 0 .../kem}/ntru/ntruhps2048509/avx2/cmov.h | 0 .../ntruhps2048509/avx2/crypto_sort_int32.c | 0 .../ntruhps2048509/avx2/crypto_sort_int32.h | 0 .../kem}/ntru/ntruhps2048509/avx2/kem.c | 0 .../kem}/ntru/ntruhps2048509/avx2/owcpa.c | 0 .../kem}/ntru/ntruhps2048509/avx2/owcpa.h | 0 .../kem}/ntru/ntruhps2048509/avx2/pack3.c | 0 .../kem}/ntru/ntruhps2048509/avx2/packq.c | 0 .../kem}/ntru/ntruhps2048509/avx2/params.h | 0 .../kem}/ntru/ntruhps2048509/avx2/poly.c | 0 .../kem}/ntru/ntruhps2048509/avx2/poly.h | 0 .../kem}/ntru/ntruhps2048509/avx2/poly_lift.c | 0 .../ntruhps2048509/avx2/poly_mod_3_Phi_n.s | 0 .../ntruhps2048509/avx2/poly_mod_q_Phi_n.s | 0 .../ntru/ntruhps2048509/avx2/poly_r2_inv.c | 0 .../ntru/ntruhps2048509/avx2/poly_r2_inv.h | 0 .../ntru/ntruhps2048509/avx2/poly_r2_mul.s | 0 .../ntru/ntruhps2048509/avx2/poly_rq_mul.s | 0 .../ntru/ntruhps2048509/avx2/poly_rq_to_s3.s | 0 .../ntru/ntruhps2048509/avx2/poly_s3_inv.c | 0 .../kem}/ntru/ntruhps2048509/avx2/sample.c | 0 .../kem}/ntru/ntruhps2048509/avx2/sample.h | 0 .../ntru/ntruhps2048509/avx2/sample_iid.c | 0 .../avx2/square_126_509_shufbytes.s | 0 .../avx2/square_15_509_shufbytes.s | 0 .../avx2/square_1_509_patience.s | 0 .../avx2/square_252_509_shufbytes.s | 0 .../avx2/square_30_509_shufbytes.s | 0 .../avx2/square_3_509_patience.s | 0 .../avx2/square_63_509_shufbytes.s | 0 .../avx2/square_6_509_patience.s | 0 .../ntruhps2048509/avx2/vec32_sample_iid.s | 0 .../ntru/ntruhps2048509/clean/CMakeLists.txt | 20 + .../kem}/ntru/ntruhps2048509/clean/api.h | 0 .../kem}/ntru/ntruhps2048509/clean/cmov.c | 0 .../kem}/ntru/ntruhps2048509/clean/cmov.h | 0 .../ntruhps2048509/clean/crypto_sort_int32.c | 0 .../ntruhps2048509/clean/crypto_sort_int32.h | 0 .../kem}/ntru/ntruhps2048509/clean/kem.c | 0 .../kem}/ntru/ntruhps2048509/clean/owcpa.c | 0 .../kem}/ntru/ntruhps2048509/clean/owcpa.h | 0 .../kem}/ntru/ntruhps2048509/clean/pack3.c | 0 .../kem}/ntru/ntruhps2048509/clean/packq.c | 0 .../kem}/ntru/ntruhps2048509/clean/params.h | 0 .../kem}/ntru/ntruhps2048509/clean/poly.c | 0 .../kem}/ntru/ntruhps2048509/clean/poly.h | 0 .../ntru/ntruhps2048509/clean/poly_lift.c | 0 .../kem}/ntru/ntruhps2048509/clean/poly_mod.c | 0 .../ntru/ntruhps2048509/clean/poly_r2_inv.c | 0 .../ntru/ntruhps2048509/clean/poly_rq_mul.c | 0 .../ntru/ntruhps2048509/clean/poly_s3_inv.c | 0 .../kem}/ntru/ntruhps2048509/clean/sample.c | 0 .../kem}/ntru/ntruhps2048509/clean/sample.h | 0 .../ntru/ntruhps2048509/clean/sample_iid.c | 0 .../ntru/ntruhps2048677/avx2/CMakeLists.txt | 34 + .../kem}/ntru/ntruhps2048677/avx2/api.h | 0 .../kem}/ntru/ntruhps2048677/avx2/cmov.c | 0 .../kem}/ntru/ntruhps2048677/avx2/cmov.h | 0 .../ntruhps2048677/avx2/crypto_sort_int32.c | 0 .../ntruhps2048677/avx2/crypto_sort_int32.h | 0 .../kem}/ntru/ntruhps2048677/avx2/kem.c | 0 .../kem}/ntru/ntruhps2048677/avx2/owcpa.c | 0 .../kem}/ntru/ntruhps2048677/avx2/owcpa.h | 0 .../kem}/ntru/ntruhps2048677/avx2/pack3.c | 0 .../kem}/ntru/ntruhps2048677/avx2/packq.c | 0 .../kem}/ntru/ntruhps2048677/avx2/params.h | 0 .../kem}/ntru/ntruhps2048677/avx2/poly.c | 0 .../kem}/ntru/ntruhps2048677/avx2/poly.h | 0 .../kem}/ntru/ntruhps2048677/avx2/poly_lift.c | 0 .../ntruhps2048677/avx2/poly_mod_3_Phi_n.s | 0 .../ntruhps2048677/avx2/poly_mod_q_Phi_n.s | 0 .../ntru/ntruhps2048677/avx2/poly_r2_inv.c | 0 .../ntru/ntruhps2048677/avx2/poly_r2_inv.h | 0 .../ntru/ntruhps2048677/avx2/poly_r2_mul.s | 0 .../ntru/ntruhps2048677/avx2/poly_rq_mul.s | 0 .../ntru/ntruhps2048677/avx2/poly_rq_to_s3.s | 0 .../ntru/ntruhps2048677/avx2/poly_s3_inv.c | 0 .../kem}/ntru/ntruhps2048677/avx2/sample.c | 0 .../kem}/ntru/ntruhps2048677/avx2/sample.h | 0 .../ntru/ntruhps2048677/avx2/sample_iid.c | 0 .../avx2/square_10_677_shufbytes.s | 0 .../avx2/square_168_677_shufbytes.s | 0 .../avx2/square_1_677_patience.s | 0 .../avx2/square_21_677_shufbytes.s | 0 .../avx2/square_2_677_patience.s | 0 .../avx2/square_336_677_shufbytes.s | 0 .../avx2/square_3_677_patience.s | 0 .../avx2/square_42_677_shufbytes.s | 0 .../avx2/square_5_677_patience.s | 0 .../avx2/square_84_677_shufbytes.s | 0 .../ntruhps2048677/avx2/vec32_sample_iid.s | 0 .../ntru/ntruhps2048677/clean/CMakeLists.txt | 20 + .../kem}/ntru/ntruhps2048677/clean/api.h | 0 .../kem}/ntru/ntruhps2048677/clean/cmov.c | 0 .../kem}/ntru/ntruhps2048677/clean/cmov.h | 0 .../ntruhps2048677/clean/crypto_sort_int32.c | 0 .../ntruhps2048677/clean/crypto_sort_int32.h | 0 .../kem}/ntru/ntruhps2048677/clean/kem.c | 0 .../kem}/ntru/ntruhps2048677/clean/owcpa.c | 0 .../kem}/ntru/ntruhps2048677/clean/owcpa.h | 0 .../kem}/ntru/ntruhps2048677/clean/pack3.c | 0 .../kem}/ntru/ntruhps2048677/clean/packq.c | 0 .../kem}/ntru/ntruhps2048677/clean/params.h | 0 .../kem}/ntru/ntruhps2048677/clean/poly.c | 0 .../kem}/ntru/ntruhps2048677/clean/poly.h | 0 .../ntru/ntruhps2048677/clean/poly_lift.c | 0 .../kem}/ntru/ntruhps2048677/clean/poly_mod.c | 0 .../ntru/ntruhps2048677/clean/poly_r2_inv.c | 0 .../ntru/ntruhps2048677/clean/poly_rq_mul.c | 0 .../ntru/ntruhps2048677/clean/poly_s3_inv.c | 0 .../kem}/ntru/ntruhps2048677/clean/sample.c | 0 .../kem}/ntru/ntruhps2048677/clean/sample.h | 0 .../ntru/ntruhps2048677/clean/sample_iid.c | 0 .../ntru/ntruhps4096821/avx2/CMakeLists.txt | 33 + .../kem}/ntru/ntruhps4096821/avx2/api.h | 0 .../kem}/ntru/ntruhps4096821/avx2/cmov.c | 0 .../kem}/ntru/ntruhps4096821/avx2/cmov.h | 0 .../ntruhps4096821/avx2/crypto_sort_int32.c | 0 .../ntruhps4096821/avx2/crypto_sort_int32.h | 0 .../kem}/ntru/ntruhps4096821/avx2/kem.c | 0 .../kem}/ntru/ntruhps4096821/avx2/owcpa.c | 0 .../kem}/ntru/ntruhps4096821/avx2/owcpa.h | 0 .../kem}/ntru/ntruhps4096821/avx2/pack3.c | 0 .../kem}/ntru/ntruhps4096821/avx2/packq.c | 0 .../kem}/ntru/ntruhps4096821/avx2/params.h | 0 .../kem}/ntru/ntruhps4096821/avx2/poly.c | 0 .../kem}/ntru/ntruhps4096821/avx2/poly.h | 0 .../kem}/ntru/ntruhps4096821/avx2/poly_lift.c | 0 .../ntruhps4096821/avx2/poly_mod_3_Phi_n.s | 0 .../ntruhps4096821/avx2/poly_mod_q_Phi_n.s | 0 .../ntru/ntruhps4096821/avx2/poly_r2_inv.c | 0 .../ntru/ntruhps4096821/avx2/poly_r2_inv.h | 0 .../ntru/ntruhps4096821/avx2/poly_r2_mul.s | 0 .../ntru/ntruhps4096821/avx2/poly_rq_mul.s | 0 .../ntru/ntruhps4096821/avx2/poly_rq_to_s3.s | 0 .../ntru/ntruhps4096821/avx2/poly_s3_inv.c | 0 .../kem}/ntru/ntruhps4096821/avx2/sample.c | 0 .../kem}/ntru/ntruhps4096821/avx2/sample.h | 0 .../ntru/ntruhps4096821/avx2/sample_iid.c | 0 .../avx2/square_102_821_shufbytes.s | 0 .../avx2/square_12_821_shufbytes.s | 0 .../avx2/square_1_821_patience.s | 0 .../avx2/square_204_821_shufbytes.s | 0 .../avx2/square_24_821_shufbytes.s | 0 .../avx2/square_3_821_patience.s | 0 .../avx2/square_408_821_shufbytes.s | 0 .../avx2/square_51_821_shufbytes.s | 0 .../avx2/square_6_821_patience.s | 0 .../ntruhps4096821/avx2/vec32_sample_iid.s | 0 .../ntru/ntruhps4096821/clean/CMakeLists.txt | 20 + .../kem}/ntru/ntruhps4096821/clean/api.h | 0 .../kem}/ntru/ntruhps4096821/clean/cmov.c | 0 .../kem}/ntru/ntruhps4096821/clean/cmov.h | 0 .../ntruhps4096821/clean/crypto_sort_int32.c | 0 .../ntruhps4096821/clean/crypto_sort_int32.h | 0 .../kem}/ntru/ntruhps4096821/clean/kem.c | 0 .../kem}/ntru/ntruhps4096821/clean/owcpa.c | 0 .../kem}/ntru/ntruhps4096821/clean/owcpa.h | 0 .../kem}/ntru/ntruhps4096821/clean/pack3.c | 0 .../kem}/ntru/ntruhps4096821/clean/packq.c | 0 .../kem}/ntru/ntruhps4096821/clean/params.h | 0 .../kem}/ntru/ntruhps4096821/clean/poly.c | 0 .../kem}/ntru/ntruhps4096821/clean/poly.h | 0 .../ntru/ntruhps4096821/clean/poly_lift.c | 0 .../kem}/ntru/ntruhps4096821/clean/poly_mod.c | 0 .../ntru/ntruhps4096821/clean/poly_r2_inv.c | 0 .../ntru/ntruhps4096821/clean/poly_rq_mul.c | 0 .../ntru/ntruhps4096821/clean/poly_s3_inv.c | 0 .../kem}/ntru/ntruhps4096821/clean/sample.c | 0 .../kem}/ntru/ntruhps4096821/clean/sample.h | 0 .../ntru/ntruhps4096821/clean/sample_iid.c | 0 src/kem/ntru/ntruhrss701/avx2/CMakeLists.txt | 33 + .../kem}/ntru/ntruhrss701/avx2/api.h | 0 .../kem}/ntru/ntruhrss701/avx2/cmov.c | 0 .../kem}/ntru/ntruhrss701/avx2/cmov.h | 0 .../kem}/ntru/ntruhrss701/avx2/kem.c | 0 .../kem}/ntru/ntruhrss701/avx2/owcpa.c | 0 .../kem}/ntru/ntruhrss701/avx2/owcpa.h | 0 .../kem}/ntru/ntruhrss701/avx2/pack3.c | 0 .../kem}/ntru/ntruhrss701/avx2/packq.c | 0 .../kem}/ntru/ntruhrss701/avx2/params.h | 0 .../kem}/ntru/ntruhrss701/avx2/poly.c | 0 .../kem}/ntru/ntruhrss701/avx2/poly.h | 0 .../kem}/ntru/ntruhrss701/avx2/poly_lift.s | 0 .../ntru/ntruhrss701/avx2/poly_mod_3_Phi_n.s | 0 .../ntru/ntruhrss701/avx2/poly_mod_q_Phi_n.s | 0 .../kem}/ntru/ntruhrss701/avx2/poly_r2_inv.c | 0 .../kem}/ntru/ntruhrss701/avx2/poly_r2_inv.h | 0 .../kem}/ntru/ntruhrss701/avx2/poly_r2_mul.s | 0 .../kem}/ntru/ntruhrss701/avx2/poly_rq_mul.s | 0 .../ntru/ntruhrss701/avx2/poly_rq_to_s3.s | 0 .../kem}/ntru/ntruhrss701/avx2/poly_s3_inv.c | 0 .../kem}/ntru/ntruhrss701/avx2/sample.c | 0 .../kem}/ntru/ntruhrss701/avx2/sample.h | 0 .../kem}/ntru/ntruhrss701/avx2/sample_iid.c | 0 .../avx2/square_12_701_shufbytes.s | 0 .../avx2/square_15_701_shufbytes.s | 0 .../avx2/square_168_701_shufbytes.s | 0 .../ntruhrss701/avx2/square_1_701_patience.s | 0 .../avx2/square_27_701_shufbytes.s | 0 .../avx2/square_336_701_shufbytes.s | 0 .../ntruhrss701/avx2/square_3_701_patience.s | 0 .../avx2/square_42_701_shufbytes.s | 0 .../ntruhrss701/avx2/square_6_701_patience.s | 0 .../avx2/square_84_701_shufbytes.s | 0 .../ntru/ntruhrss701/avx2/vec32_sample_iid.s | 0 src/kem/ntru/ntruhrss701/clean/CMakeLists.txt | 19 + .../kem}/ntru/ntruhrss701/clean/api.h | 0 .../kem}/ntru/ntruhrss701/clean/cmov.c | 0 .../kem}/ntru/ntruhrss701/clean/cmov.h | 0 .../kem}/ntru/ntruhrss701/clean/kem.c | 0 .../kem}/ntru/ntruhrss701/clean/owcpa.c | 0 .../kem}/ntru/ntruhrss701/clean/owcpa.h | 0 .../kem}/ntru/ntruhrss701/clean/pack3.c | 0 .../kem}/ntru/ntruhrss701/clean/packq.c | 0 .../kem}/ntru/ntruhrss701/clean/params.h | 0 .../kem}/ntru/ntruhrss701/clean/poly.c | 0 .../kem}/ntru/ntruhrss701/clean/poly.h | 0 .../kem}/ntru/ntruhrss701/clean/poly_lift.c | 0 .../kem}/ntru/ntruhrss701/clean/poly_mod.c | 0 .../kem}/ntru/ntruhrss701/clean/poly_r2_inv.c | 0 .../kem}/ntru/ntruhrss701/clean/poly_rq_mul.c | 0 .../kem}/ntru/ntruhrss701/clean/poly_s3_inv.c | 0 .../kem}/ntru/ntruhrss701/clean/sample.c | 0 .../kem}/ntru/ntruhrss701/clean/sample.h | 0 .../kem}/ntru/ntruhrss701/clean/sample_iid.c | 0 .../ntru_prime/ntrulpr653/avx2/CMakeLists.txt | 25 + .../kem}/ntru_prime/ntrulpr653/avx2/api.h | 0 .../avx2/crypto_core_multsntrup653.c | 0 .../avx2/crypto_core_multsntrup653.h | 0 .../avx2/crypto_core_multsntrup653_ntt.c | 0 .../avx2/crypto_core_multsntrup653_ntt.h | 0 .../ntrulpr653/avx2/crypto_decode_256x16.c | 0 .../ntrulpr653/avx2/crypto_decode_256x16.h | 0 .../ntrulpr653/avx2/crypto_decode_256x2.c | 0 .../ntrulpr653/avx2/crypto_decode_256x2.h | 0 .../ntrulpr653/avx2/crypto_decode_653x1541.c | 0 .../ntrulpr653/avx2/crypto_decode_653x1541.h | 0 .../ntrulpr653/avx2/crypto_decode_653x3.c | 0 .../ntrulpr653/avx2/crypto_decode_653x3.h | 0 .../ntrulpr653/avx2/crypto_decode_653xint16.c | 0 .../ntrulpr653/avx2/crypto_decode_653xint16.h | 0 .../ntrulpr653/avx2/crypto_decode_653xint32.c | 0 .../ntrulpr653/avx2/crypto_decode_653xint32.h | 0 .../ntrulpr653/avx2/crypto_encode_256x16.c | 0 .../ntrulpr653/avx2/crypto_encode_256x16.h | 0 .../ntrulpr653/avx2/crypto_encode_256x2.c | 0 .../ntrulpr653/avx2/crypto_encode_256x2.h | 0 .../ntrulpr653/avx2/crypto_encode_653x1541.c | 0 .../ntrulpr653/avx2/crypto_encode_653x1541.h | 0 .../avx2/crypto_encode_653x1541round.c | 0 .../avx2/crypto_encode_653x1541round.h | 0 .../ntrulpr653/avx2/crypto_encode_653x3.c | 0 .../ntrulpr653/avx2/crypto_encode_653x3.h | 0 .../ntrulpr653/avx2/crypto_encode_653xint16.c | 0 .../ntrulpr653/avx2/crypto_encode_653xint16.h | 0 .../ntrulpr653/avx2/crypto_sort_int32.c | 0 .../ntrulpr653/avx2/crypto_sort_int32.h | 0 .../ntrulpr653/avx2/crypto_sort_uint32.c | 0 .../ntrulpr653/avx2/crypto_sort_uint32.h | 0 .../ntrulpr653/avx2/crypto_stream_aes256ctr.c | 0 .../ntrulpr653/avx2/crypto_stream_aes256ctr.h | 0 .../ntrulpr653/avx2/crypto_verify_1025.c | 0 .../ntrulpr653/avx2/crypto_verify_1025.h | 0 .../kem}/ntru_prime/ntrulpr653/avx2/kem.c | 0 .../kem}/ntru_prime/ntrulpr653/avx2/params.h | 0 .../ntrulpr653/clean/CMakeLists.txt | 24 + .../kem}/ntru_prime/ntrulpr653/clean/api.h | 0 .../clean/crypto_core_multsntrup653.c | 0 .../clean/crypto_core_multsntrup653.h | 0 .../ntrulpr653/clean/crypto_decode_256x16.c | 0 .../ntrulpr653/clean/crypto_decode_256x16.h | 0 .../ntrulpr653/clean/crypto_decode_256x2.c | 0 .../ntrulpr653/clean/crypto_decode_256x2.h | 0 .../ntrulpr653/clean/crypto_decode_653x1541.c | 0 .../ntrulpr653/clean/crypto_decode_653x1541.h | 0 .../ntrulpr653/clean/crypto_decode_653x3.c | 0 .../ntrulpr653/clean/crypto_decode_653x3.h | 0 .../clean/crypto_decode_653xint16.c | 0 .../clean/crypto_decode_653xint16.h | 0 .../clean/crypto_decode_653xint32.c | 0 .../clean/crypto_decode_653xint32.h | 0 .../ntrulpr653/clean/crypto_encode_256x16.c | 0 .../ntrulpr653/clean/crypto_encode_256x16.h | 0 .../ntrulpr653/clean/crypto_encode_256x2.c | 0 .../ntrulpr653/clean/crypto_encode_256x2.h | 0 .../ntrulpr653/clean/crypto_encode_653x1541.c | 0 .../ntrulpr653/clean/crypto_encode_653x1541.h | 0 .../clean/crypto_encode_653x1541round.c | 0 .../clean/crypto_encode_653x1541round.h | 0 .../ntrulpr653/clean/crypto_encode_653x3.c | 0 .../ntrulpr653/clean/crypto_encode_653x3.h | 0 .../clean/crypto_encode_653xint16.c | 0 .../clean/crypto_encode_653xint16.h | 0 .../ntrulpr653/clean/crypto_sort_int32.c | 0 .../ntrulpr653/clean/crypto_sort_int32.h | 0 .../ntrulpr653/clean/crypto_sort_uint32.c | 0 .../ntrulpr653/clean/crypto_sort_uint32.h | 0 .../clean/crypto_stream_aes256ctr.c | 0 .../clean/crypto_stream_aes256ctr.h | 0 .../ntrulpr653/clean/crypto_verify_1025.c | 0 .../ntrulpr653/clean/crypto_verify_1025.h | 0 .../kem}/ntru_prime/ntrulpr653/clean/kem.c | 0 .../kem}/ntru_prime/ntrulpr653/clean/params.h | 0 .../ntru_prime/ntrulpr761/avx2/CMakeLists.txt | 25 + .../kem}/ntru_prime/ntrulpr761/avx2/api.h | 0 .../avx2/crypto_core_multsntrup761.c | 0 .../avx2/crypto_core_multsntrup761.h | 0 .../avx2/crypto_core_multsntrup761_ntt.c | 0 .../avx2/crypto_core_multsntrup761_ntt.h | 0 .../ntrulpr761/avx2/crypto_decode_256x16.c | 0 .../ntrulpr761/avx2/crypto_decode_256x16.h | 0 .../ntrulpr761/avx2/crypto_decode_256x2.c | 0 .../ntrulpr761/avx2/crypto_decode_256x2.h | 0 .../ntrulpr761/avx2/crypto_decode_761x1531.c | 0 .../ntrulpr761/avx2/crypto_decode_761x1531.h | 0 .../ntrulpr761/avx2/crypto_decode_761x3.c | 0 .../ntrulpr761/avx2/crypto_decode_761x3.h | 0 .../ntrulpr761/avx2/crypto_decode_761xint16.c | 0 .../ntrulpr761/avx2/crypto_decode_761xint16.h | 0 .../ntrulpr761/avx2/crypto_decode_761xint32.c | 0 .../ntrulpr761/avx2/crypto_decode_761xint32.h | 0 .../ntrulpr761/avx2/crypto_encode_256x16.c | 0 .../ntrulpr761/avx2/crypto_encode_256x16.h | 0 .../ntrulpr761/avx2/crypto_encode_256x2.c | 0 .../ntrulpr761/avx2/crypto_encode_256x2.h | 0 .../ntrulpr761/avx2/crypto_encode_761x1531.c | 0 .../ntrulpr761/avx2/crypto_encode_761x1531.h | 0 .../avx2/crypto_encode_761x1531round.c | 0 .../avx2/crypto_encode_761x1531round.h | 0 .../ntrulpr761/avx2/crypto_encode_761x3.c | 0 .../ntrulpr761/avx2/crypto_encode_761x3.h | 0 .../ntrulpr761/avx2/crypto_encode_761xint16.c | 0 .../ntrulpr761/avx2/crypto_encode_761xint16.h | 0 .../ntrulpr761/avx2/crypto_sort_int32.c | 0 .../ntrulpr761/avx2/crypto_sort_int32.h | 0 .../ntrulpr761/avx2/crypto_sort_uint32.c | 0 .../ntrulpr761/avx2/crypto_sort_uint32.h | 0 .../ntrulpr761/avx2/crypto_stream_aes256ctr.c | 0 .../ntrulpr761/avx2/crypto_stream_aes256ctr.h | 0 .../ntrulpr761/avx2/crypto_verify_1167.c | 0 .../ntrulpr761/avx2/crypto_verify_1167.h | 0 .../kem}/ntru_prime/ntrulpr761/avx2/kem.c | 0 .../kem}/ntru_prime/ntrulpr761/avx2/params.h | 0 .../ntrulpr761/clean/CMakeLists.txt | 24 + .../kem}/ntru_prime/ntrulpr761/clean/api.h | 0 .../clean/crypto_core_multsntrup761.c | 0 .../clean/crypto_core_multsntrup761.h | 0 .../ntrulpr761/clean/crypto_decode_256x16.c | 0 .../ntrulpr761/clean/crypto_decode_256x16.h | 0 .../ntrulpr761/clean/crypto_decode_256x2.c | 0 .../ntrulpr761/clean/crypto_decode_256x2.h | 0 .../ntrulpr761/clean/crypto_decode_761x1531.c | 0 .../ntrulpr761/clean/crypto_decode_761x1531.h | 0 .../ntrulpr761/clean/crypto_decode_761x3.c | 0 .../ntrulpr761/clean/crypto_decode_761x3.h | 0 .../clean/crypto_decode_761xint16.c | 0 .../clean/crypto_decode_761xint16.h | 0 .../clean/crypto_decode_761xint32.c | 0 .../clean/crypto_decode_761xint32.h | 0 .../ntrulpr761/clean/crypto_encode_256x16.c | 0 .../ntrulpr761/clean/crypto_encode_256x16.h | 0 .../ntrulpr761/clean/crypto_encode_256x2.c | 0 .../ntrulpr761/clean/crypto_encode_256x2.h | 0 .../ntrulpr761/clean/crypto_encode_761x1531.c | 0 .../ntrulpr761/clean/crypto_encode_761x1531.h | 0 .../clean/crypto_encode_761x1531round.c | 0 .../clean/crypto_encode_761x1531round.h | 0 .../ntrulpr761/clean/crypto_encode_761x3.c | 0 .../ntrulpr761/clean/crypto_encode_761x3.h | 0 .../clean/crypto_encode_761xint16.c | 0 .../clean/crypto_encode_761xint16.h | 0 .../ntrulpr761/clean/crypto_sort_int32.c | 0 .../ntrulpr761/clean/crypto_sort_int32.h | 0 .../ntrulpr761/clean/crypto_sort_uint32.c | 0 .../ntrulpr761/clean/crypto_sort_uint32.h | 0 .../clean/crypto_stream_aes256ctr.c | 0 .../clean/crypto_stream_aes256ctr.h | 0 .../ntrulpr761/clean/crypto_verify_1167.c | 0 .../ntrulpr761/clean/crypto_verify_1167.h | 0 .../kem}/ntru_prime/ntrulpr761/clean/kem.c | 0 .../kem}/ntru_prime/ntrulpr761/clean/params.h | 0 .../ntru_prime/ntrulpr857/avx2/CMakeLists.txt | 25 + .../kem}/ntru_prime/ntrulpr857/avx2/api.h | 0 .../avx2/crypto_core_multsntrup857.c | 0 .../avx2/crypto_core_multsntrup857.h | 0 .../avx2/crypto_core_multsntrup857_ntt.c | 0 .../avx2/crypto_core_multsntrup857_ntt.h | 0 .../ntrulpr857/avx2/crypto_decode_256x16.c | 0 .../ntrulpr857/avx2/crypto_decode_256x16.h | 0 .../ntrulpr857/avx2/crypto_decode_256x2.c | 0 .../ntrulpr857/avx2/crypto_decode_256x2.h | 0 .../ntrulpr857/avx2/crypto_decode_857x1723.c | 0 .../ntrulpr857/avx2/crypto_decode_857x1723.h | 0 .../ntrulpr857/avx2/crypto_decode_857x3.c | 0 .../ntrulpr857/avx2/crypto_decode_857x3.h | 0 .../ntrulpr857/avx2/crypto_decode_857xint16.c | 0 .../ntrulpr857/avx2/crypto_decode_857xint16.h | 0 .../ntrulpr857/avx2/crypto_decode_857xint32.c | 0 .../ntrulpr857/avx2/crypto_decode_857xint32.h | 0 .../ntrulpr857/avx2/crypto_encode_256x16.c | 0 .../ntrulpr857/avx2/crypto_encode_256x16.h | 0 .../ntrulpr857/avx2/crypto_encode_256x2.c | 0 .../ntrulpr857/avx2/crypto_encode_256x2.h | 0 .../ntrulpr857/avx2/crypto_encode_857x1723.c | 0 .../ntrulpr857/avx2/crypto_encode_857x1723.h | 0 .../avx2/crypto_encode_857x1723round.c | 0 .../avx2/crypto_encode_857x1723round.h | 0 .../ntrulpr857/avx2/crypto_encode_857x3.c | 0 .../ntrulpr857/avx2/crypto_encode_857x3.h | 0 .../ntrulpr857/avx2/crypto_encode_857xint16.c | 0 .../ntrulpr857/avx2/crypto_encode_857xint16.h | 0 .../ntrulpr857/avx2/crypto_sort_int32.c | 0 .../ntrulpr857/avx2/crypto_sort_int32.h | 0 .../ntrulpr857/avx2/crypto_sort_uint32.c | 0 .../ntrulpr857/avx2/crypto_sort_uint32.h | 0 .../ntrulpr857/avx2/crypto_stream_aes256ctr.c | 0 .../ntrulpr857/avx2/crypto_stream_aes256ctr.h | 0 .../ntrulpr857/avx2/crypto_verify_1312.c | 0 .../ntrulpr857/avx2/crypto_verify_1312.h | 0 .../kem}/ntru_prime/ntrulpr857/avx2/kem.c | 0 .../kem}/ntru_prime/ntrulpr857/avx2/params.h | 0 .../ntrulpr857/clean/CMakeLists.txt | 24 + .../kem}/ntru_prime/ntrulpr857/clean/api.h | 0 .../clean/crypto_core_multsntrup857.c | 0 .../clean/crypto_core_multsntrup857.h | 0 .../ntrulpr857/clean/crypto_decode_256x16.c | 0 .../ntrulpr857/clean/crypto_decode_256x16.h | 0 .../ntrulpr857/clean/crypto_decode_256x2.c | 0 .../ntrulpr857/clean/crypto_decode_256x2.h | 0 .../ntrulpr857/clean/crypto_decode_857x1723.c | 0 .../ntrulpr857/clean/crypto_decode_857x1723.h | 0 .../ntrulpr857/clean/crypto_decode_857x3.c | 0 .../ntrulpr857/clean/crypto_decode_857x3.h | 0 .../clean/crypto_decode_857xint16.c | 0 .../clean/crypto_decode_857xint16.h | 0 .../clean/crypto_decode_857xint32.c | 0 .../clean/crypto_decode_857xint32.h | 0 .../ntrulpr857/clean/crypto_encode_256x16.c | 0 .../ntrulpr857/clean/crypto_encode_256x16.h | 0 .../ntrulpr857/clean/crypto_encode_256x2.c | 0 .../ntrulpr857/clean/crypto_encode_256x2.h | 0 .../ntrulpr857/clean/crypto_encode_857x1723.c | 0 .../ntrulpr857/clean/crypto_encode_857x1723.h | 0 .../clean/crypto_encode_857x1723round.c | 0 .../clean/crypto_encode_857x1723round.h | 0 .../ntrulpr857/clean/crypto_encode_857x3.c | 0 .../ntrulpr857/clean/crypto_encode_857x3.h | 0 .../clean/crypto_encode_857xint16.c | 0 .../clean/crypto_encode_857xint16.h | 0 .../ntrulpr857/clean/crypto_sort_int32.c | 0 .../ntrulpr857/clean/crypto_sort_int32.h | 0 .../ntrulpr857/clean/crypto_sort_uint32.c | 0 .../ntrulpr857/clean/crypto_sort_uint32.h | 0 .../clean/crypto_stream_aes256ctr.c | 0 .../clean/crypto_stream_aes256ctr.h | 0 .../ntrulpr857/clean/crypto_verify_1312.c | 0 .../ntrulpr857/clean/crypto_verify_1312.h | 0 .../kem}/ntru_prime/ntrulpr857/clean/kem.c | 0 .../kem}/ntru_prime/ntrulpr857/clean/params.h | 0 src/kem/saber/firesaber/avx2/CMakeLists.txt | 13 + .../kem}/saber/firesaber/avx2/SABER_indcpa.c | 0 .../kem}/saber/firesaber/avx2/SABER_indcpa.h | 0 .../kem}/saber/firesaber/avx2/SABER_params.h | 0 .../kem}/saber/firesaber/avx2/api.h | 0 .../kem}/saber/firesaber/avx2/cbd.c | 0 .../kem}/saber/firesaber/avx2/cbd.h | 0 .../kem}/saber/firesaber/avx2/kem.c | 0 .../kem}/saber/firesaber/avx2/pack_unpack.c | 0 .../kem}/saber/firesaber/avx2/pack_unpack.h | 0 .../kem}/saber/firesaber/avx2/poly.c | 0 .../kem}/saber/firesaber/avx2/poly.h | 0 .../kem}/saber/firesaber/avx2/poly_mul.c | 0 .../kem}/saber/firesaber/avx2/verify.c | 0 .../kem}/saber/firesaber/avx2/verify.h | 0 src/kem/saber/firesaber/clean/CMakeLists.txt | 13 + .../kem}/saber/firesaber/clean/SABER_indcpa.c | 0 .../kem}/saber/firesaber/clean/SABER_indcpa.h | 0 .../kem}/saber/firesaber/clean/SABER_params.h | 0 .../kem}/saber/firesaber/clean/api.h | 0 .../kem}/saber/firesaber/clean/cbd.c | 0 .../kem}/saber/firesaber/clean/cbd.h | 0 .../kem}/saber/firesaber/clean/kem.c | 0 .../kem}/saber/firesaber/clean/pack_unpack.c | 0 .../kem}/saber/firesaber/clean/pack_unpack.h | 0 .../kem}/saber/firesaber/clean/poly.c | 0 .../kem}/saber/firesaber/clean/poly.h | 0 .../kem}/saber/firesaber/clean/poly_mul.c | 0 .../kem}/saber/firesaber/clean/poly_mul.h | 0 .../kem}/saber/firesaber/clean/verify.c | 0 .../kem}/saber/firesaber/clean/verify.h | 0 src/kem/saber/lightsaber/avx2/CMakeLists.txt | 13 + .../kem}/saber/lightsaber/avx2/SABER_indcpa.c | 0 .../kem}/saber/lightsaber/avx2/SABER_indcpa.h | 0 .../kem}/saber/lightsaber/avx2/SABER_params.h | 0 .../kem}/saber/lightsaber/avx2/api.h | 0 .../kem}/saber/lightsaber/avx2/cbd.c | 0 .../kem}/saber/lightsaber/avx2/cbd.h | 0 .../kem}/saber/lightsaber/avx2/kem.c | 0 .../kem}/saber/lightsaber/avx2/pack_unpack.c | 0 .../kem}/saber/lightsaber/avx2/pack_unpack.h | 0 .../kem}/saber/lightsaber/avx2/poly.c | 0 .../kem}/saber/lightsaber/avx2/poly.h | 0 .../kem}/saber/lightsaber/avx2/poly_mul.c | 0 .../kem}/saber/lightsaber/avx2/verify.c | 0 .../kem}/saber/lightsaber/avx2/verify.h | 0 src/kem/saber/lightsaber/clean/CMakeLists.txt | 14 + .../saber/lightsaber/clean/SABER_indcpa.c | 0 .../saber/lightsaber/clean/SABER_indcpa.h | 0 .../saber/lightsaber/clean/SABER_params.h | 0 .../kem}/saber/lightsaber/clean/api.h | 0 .../kem}/saber/lightsaber/clean/cbd.c | 0 .../kem}/saber/lightsaber/clean/cbd.h | 0 .../kem}/saber/lightsaber/clean/kem.c | 0 .../kem}/saber/lightsaber/clean/pack_unpack.c | 0 .../kem}/saber/lightsaber/clean/pack_unpack.h | 0 .../kem}/saber/lightsaber/clean/poly.c | 0 .../kem}/saber/lightsaber/clean/poly.h | 0 .../kem}/saber/lightsaber/clean/poly_mul.c | 0 .../kem}/saber/lightsaber/clean/poly_mul.h | 0 .../kem}/saber/lightsaber/clean/verify.c | 0 .../kem}/saber/lightsaber/clean/verify.h | 0 src/kem/saber/saber/avx2/CMakeLists.txt | 13 + .../kem}/saber/saber/avx2/SABER_indcpa.c | 0 .../kem}/saber/saber/avx2/SABER_indcpa.h | 0 .../kem}/saber/saber/avx2/SABER_params.h | 0 .../kem}/saber/saber/avx2/api.h | 0 .../kem}/saber/saber/avx2/cbd.c | 0 .../kem}/saber/saber/avx2/cbd.h | 0 .../kem}/saber/saber/avx2/kem.c | 0 .../kem}/saber/saber/avx2/pack_unpack.c | 0 .../kem}/saber/saber/avx2/pack_unpack.h | 0 .../kem}/saber/saber/avx2/poly.c | 0 .../kem}/saber/saber/avx2/poly.h | 0 .../kem}/saber/saber/avx2/poly_mul.c | 0 .../kem}/saber/saber/avx2/verify.c | 0 .../kem}/saber/saber/avx2/verify.h | 0 src/kem/saber/saber/clean/CMakeLists.txt | 13 + .../kem}/saber/saber/clean/SABER_indcpa.c | 0 .../kem}/saber/saber/clean/SABER_indcpa.h | 0 .../kem}/saber/saber/clean/SABER_params.h | 0 .../kem}/saber/saber/clean/api.h | 0 .../kem}/saber/saber/clean/cbd.c | 0 .../kem}/saber/saber/clean/cbd.h | 0 .../kem}/saber/saber/clean/kem.c | 0 .../kem}/saber/saber/clean/pack_unpack.c | 0 .../kem}/saber/saber/clean/pack_unpack.h | 0 .../kem}/saber/saber/clean/poly.c | 0 .../kem}/saber/saber/clean/poly.h | 0 .../kem}/saber/saber/clean/poly_mul.c | 0 .../kem}/saber/saber/clean/poly_mul.h | 0 .../kem}/saber/saber/clean/verify.c | 0 .../kem}/saber/saber/clean/verify.h | 0 .../dilithium/dilithium2/avx2/CMakeLists.txt | 19 + .../sign}/dilithium/dilithium2/avx2/align.h | 0 .../sign}/dilithium/dilithium2/avx2/api.h | 0 .../sign}/dilithium/dilithium2/avx2/cdecl.h | 0 .../sign}/dilithium/dilithium2/avx2/consts.c | 0 .../sign}/dilithium/dilithium2/avx2/consts.h | 0 .../sign}/dilithium/dilithium2/avx2/f1600x4.S | 0 .../dilithium/dilithium2/avx2/fips202x4.c | 0 .../dilithium/dilithium2/avx2/fips202x4.h | 0 .../sign}/dilithium/dilithium2/avx2/invntt.S | 0 .../sign}/dilithium/dilithium2/avx2/ntt.S | 0 .../sign}/dilithium/dilithium2/avx2/ntt.h | 0 .../sign}/dilithium/dilithium2/avx2/packing.c | 0 .../sign}/dilithium/dilithium2/avx2/packing.h | 0 .../sign}/dilithium/dilithium2/avx2/params.h | 0 .../dilithium/dilithium2/avx2/pointwise.S | 0 .../sign}/dilithium/dilithium2/avx2/poly.c | 0 .../sign}/dilithium/dilithium2/avx2/poly.h | 0 .../sign}/dilithium/dilithium2/avx2/polyvec.c | 0 .../sign}/dilithium/dilithium2/avx2/polyvec.h | 0 .../dilithium/dilithium2/avx2/rejsample.c | 0 .../dilithium/dilithium2/avx2/rejsample.h | 0 .../dilithium/dilithium2/avx2/rounding.c | 0 .../dilithium/dilithium2/avx2/rounding.h | 0 .../sign}/dilithium/dilithium2/avx2/shuffle.S | 0 .../dilithium/dilithium2/avx2/shuffle.inc | 0 .../sign}/dilithium/dilithium2/avx2/sign.c | 0 .../sign}/dilithium/dilithium2/avx2/sign.h | 0 .../dilithium2/avx2/symmetric-shake.c | 0 .../dilithium/dilithium2/avx2/symmetric.h | 0 .../dilithium/dilithium2/clean/CMakeLists.txt | 14 + .../sign}/dilithium/dilithium2/clean/api.h | 0 .../sign}/dilithium/dilithium2/clean/ntt.c | 0 .../sign}/dilithium/dilithium2/clean/ntt.h | 0 .../dilithium/dilithium2/clean/packing.c | 0 .../dilithium/dilithium2/clean/packing.h | 0 .../sign}/dilithium/dilithium2/clean/params.h | 0 .../sign}/dilithium/dilithium2/clean/poly.c | 0 .../sign}/dilithium/dilithium2/clean/poly.h | 0 .../dilithium/dilithium2/clean/polyvec.c | 0 .../dilithium/dilithium2/clean/polyvec.h | 0 .../sign}/dilithium/dilithium2/clean/reduce.c | 0 .../sign}/dilithium/dilithium2/clean/reduce.h | 0 .../dilithium/dilithium2/clean/rounding.c | 0 .../dilithium/dilithium2/clean/rounding.h | 0 .../sign}/dilithium/dilithium2/clean/sign.c | 0 .../sign}/dilithium/dilithium2/clean/sign.h | 0 .../dilithium2/clean/symmetric-shake.c | 0 .../dilithium/dilithium2/clean/symmetric.h | 0 .../dilithium/dilithium3/avx2/CMakeLists.txt | 19 + .../sign}/dilithium/dilithium3/avx2/align.h | 0 .../sign}/dilithium/dilithium3/avx2/api.h | 0 .../sign}/dilithium/dilithium3/avx2/cdecl.h | 0 .../sign}/dilithium/dilithium3/avx2/consts.c | 0 .../sign}/dilithium/dilithium3/avx2/consts.h | 0 .../sign}/dilithium/dilithium3/avx2/f1600x4.S | 0 .../dilithium/dilithium3/avx2/fips202x4.c | 0 .../dilithium/dilithium3/avx2/fips202x4.h | 0 .../sign}/dilithium/dilithium3/avx2/invntt.S | 0 .../sign}/dilithium/dilithium3/avx2/ntt.S | 0 .../sign}/dilithium/dilithium3/avx2/ntt.h | 0 .../sign}/dilithium/dilithium3/avx2/packing.c | 0 .../sign}/dilithium/dilithium3/avx2/packing.h | 0 .../sign}/dilithium/dilithium3/avx2/params.h | 0 .../dilithium/dilithium3/avx2/pointwise.S | 0 .../sign}/dilithium/dilithium3/avx2/poly.c | 0 .../sign}/dilithium/dilithium3/avx2/poly.h | 0 .../sign}/dilithium/dilithium3/avx2/polyvec.c | 0 .../sign}/dilithium/dilithium3/avx2/polyvec.h | 0 .../dilithium/dilithium3/avx2/rejsample.c | 0 .../dilithium/dilithium3/avx2/rejsample.h | 0 .../dilithium/dilithium3/avx2/rounding.c | 0 .../dilithium/dilithium3/avx2/rounding.h | 0 .../sign}/dilithium/dilithium3/avx2/shuffle.S | 0 .../dilithium/dilithium3/avx2/shuffle.inc | 0 .../sign}/dilithium/dilithium3/avx2/sign.c | 0 .../sign}/dilithium/dilithium3/avx2/sign.h | 0 .../dilithium3/avx2/symmetric-shake.c | 0 .../dilithium/dilithium3/avx2/symmetric.h | 0 .../dilithium/dilithium3/clean/CMakeLists.txt | 15 + .../sign}/dilithium/dilithium3/clean/api.h | 0 .../sign}/dilithium/dilithium3/clean/ntt.c | 0 .../sign}/dilithium/dilithium3/clean/ntt.h | 0 .../dilithium/dilithium3/clean/packing.c | 0 .../dilithium/dilithium3/clean/packing.h | 0 .../sign}/dilithium/dilithium3/clean/params.h | 0 .../sign}/dilithium/dilithium3/clean/poly.c | 0 .../sign}/dilithium/dilithium3/clean/poly.h | 0 .../dilithium/dilithium3/clean/polyvec.c | 0 .../dilithium/dilithium3/clean/polyvec.h | 0 .../sign}/dilithium/dilithium3/clean/reduce.c | 0 .../sign}/dilithium/dilithium3/clean/reduce.h | 0 .../dilithium/dilithium3/clean/rounding.c | 0 .../dilithium/dilithium3/clean/rounding.h | 0 .../sign}/dilithium/dilithium3/clean/sign.c | 0 .../sign}/dilithium/dilithium3/clean/sign.h | 0 .../dilithium3/clean/symmetric-shake.c | 0 .../dilithium/dilithium3/clean/symmetric.h | 0 .../dilithium/dilithium5/avx2/CMakeLists.txt | 20 + .../sign}/dilithium/dilithium5/avx2/align.h | 0 .../sign}/dilithium/dilithium5/avx2/api.h | 0 .../sign}/dilithium/dilithium5/avx2/cdecl.h | 0 .../sign}/dilithium/dilithium5/avx2/consts.c | 0 .../sign}/dilithium/dilithium5/avx2/consts.h | 0 .../sign}/dilithium/dilithium5/avx2/f1600x4.S | 0 .../dilithium/dilithium5/avx2/fips202x4.c | 0 .../dilithium/dilithium5/avx2/fips202x4.h | 0 .../sign}/dilithium/dilithium5/avx2/invntt.S | 0 .../sign}/dilithium/dilithium5/avx2/ntt.S | 0 .../sign}/dilithium/dilithium5/avx2/ntt.h | 0 .../sign}/dilithium/dilithium5/avx2/packing.c | 0 .../sign}/dilithium/dilithium5/avx2/packing.h | 0 .../sign}/dilithium/dilithium5/avx2/params.h | 0 .../dilithium/dilithium5/avx2/pointwise.S | 0 .../sign}/dilithium/dilithium5/avx2/poly.c | 0 .../sign}/dilithium/dilithium5/avx2/poly.h | 0 .../sign}/dilithium/dilithium5/avx2/polyvec.c | 0 .../sign}/dilithium/dilithium5/avx2/polyvec.h | 0 .../dilithium/dilithium5/avx2/rejsample.c | 0 .../dilithium/dilithium5/avx2/rejsample.h | 0 .../dilithium/dilithium5/avx2/rounding.c | 0 .../dilithium/dilithium5/avx2/rounding.h | 0 .../sign}/dilithium/dilithium5/avx2/shuffle.S | 0 .../dilithium/dilithium5/avx2/shuffle.inc | 0 .../sign}/dilithium/dilithium5/avx2/sign.c | 0 .../sign}/dilithium/dilithium5/avx2/sign.h | 0 .../dilithium5/avx2/symmetric-shake.c | 0 .../dilithium/dilithium5/avx2/symmetric.h | 0 .../dilithium/dilithium5/clean/CMakeLists.txt | 14 + .../sign}/dilithium/dilithium5/clean/api.h | 0 .../sign}/dilithium/dilithium5/clean/ntt.c | 0 .../sign}/dilithium/dilithium5/clean/ntt.h | 0 .../dilithium/dilithium5/clean/packing.c | 0 .../dilithium/dilithium5/clean/packing.h | 0 .../sign}/dilithium/dilithium5/clean/params.h | 0 .../sign}/dilithium/dilithium5/clean/poly.c | 0 .../sign}/dilithium/dilithium5/clean/poly.h | 0 .../dilithium/dilithium5/clean/polyvec.c | 0 .../dilithium/dilithium5/clean/polyvec.h | 0 .../sign}/dilithium/dilithium5/clean/reduce.c | 0 .../sign}/dilithium/dilithium5/clean/reduce.h | 0 .../dilithium/dilithium5/clean/rounding.c | 0 .../dilithium/dilithium5/clean/rounding.h | 0 .../sign}/dilithium/dilithium5/clean/sign.c | 0 .../sign}/dilithium/dilithium5/clean/sign.h | 0 .../dilithium5/clean/symmetric-shake.c | 0 .../dilithium/dilithium5/clean/symmetric.h | 0 src/sign/dilithium/sampling.c | 46 + src/sign/dilithium/sampling.h | 8 + .../falcon/falcon-1024/avx2/CMakeLists.txt | 15 + .../sign}/falcon/falcon-1024/avx2/api.h | 0 .../sign}/falcon/falcon-1024/avx2/codec.c | 0 .../sign}/falcon/falcon-1024/avx2/common.c | 0 .../sign}/falcon/falcon-1024/avx2/fft.c | 0 .../sign}/falcon/falcon-1024/avx2/fpr.c | 0 .../sign}/falcon/falcon-1024/avx2/fpr.h | 0 .../sign}/falcon/falcon-1024/avx2/inner.h | 0 .../sign}/falcon/falcon-1024/avx2/keygen.c | 0 .../sign}/falcon/falcon-1024/avx2/pqclean.c | 0 .../sign}/falcon/falcon-1024/avx2/rng.c | 0 .../sign}/falcon/falcon-1024/avx2/sign.c | 0 .../sign}/falcon/falcon-1024/avx2/vrfy.c | 0 .../falcon/falcon-1024/clean/CMakeLists.txt | 15 + .../sign}/falcon/falcon-1024/clean/api.h | 0 .../sign}/falcon/falcon-1024/clean/codec.c | 0 .../sign}/falcon/falcon-1024/clean/common.c | 0 .../sign}/falcon/falcon-1024/clean/fft.c | 0 .../sign}/falcon/falcon-1024/clean/fpr.c | 0 .../sign}/falcon/falcon-1024/clean/fpr.h | 0 .../sign}/falcon/falcon-1024/clean/inner.h | 0 .../sign}/falcon/falcon-1024/clean/keygen.c | 0 .../sign}/falcon/falcon-1024/clean/pqclean.c | 0 .../sign}/falcon/falcon-1024/clean/rng.c | 0 .../sign}/falcon/falcon-1024/clean/sign.c | 0 .../sign}/falcon/falcon-1024/clean/vrfy.c | 0 .../falcon/falcon-512/avx2/CMakeLists.txt | 15 + .../sign}/falcon/falcon-512/avx2/api.h | 0 .../sign}/falcon/falcon-512/avx2/codec.c | 0 .../sign}/falcon/falcon-512/avx2/common.c | 0 .../sign}/falcon/falcon-512/avx2/fft.c | 0 .../sign}/falcon/falcon-512/avx2/fpr.c | 0 .../sign}/falcon/falcon-512/avx2/fpr.h | 0 .../sign}/falcon/falcon-512/avx2/inner.h | 0 .../sign}/falcon/falcon-512/avx2/keygen.c | 0 .../sign}/falcon/falcon-512/avx2/pqclean.c | 0 .../sign}/falcon/falcon-512/avx2/rng.c | 0 .../sign}/falcon/falcon-512/avx2/sign.c | 0 .../sign}/falcon/falcon-512/avx2/vrfy.c | 0 .../falcon/falcon-512/clean/CMakeLists.txt | 15 + .../sign}/falcon/falcon-512/clean/api.h | 0 .../sign}/falcon/falcon-512/clean/codec.c | 0 .../sign}/falcon/falcon-512/clean/common.c | 0 .../sign}/falcon/falcon-512/clean/fft.c | 0 .../sign}/falcon/falcon-512/clean/fpr.c | 0 .../sign}/falcon/falcon-512/clean/fpr.h | 0 .../sign}/falcon/falcon-512/clean/inner.h | 0 .../sign}/falcon/falcon-512/clean/keygen.c | 0 .../sign}/falcon/falcon-512/clean/pqclean.c | 0 .../sign}/falcon/falcon-512/clean/rng.c | 0 .../sign}/falcon/falcon-512/clean/sign.c | 0 .../sign}/falcon/falcon-512/clean/vrfy.c | 0 .../rainbowI-classic/clean/CMakeLists.txt | 16 + .../rainbow/rainbowI-classic/clean/api.h | 0 .../rainbow/rainbowI-classic/clean/blas.c | 0 .../rainbow/rainbowI-classic/clean/blas.h | 0 .../rainbowI-classic/clean/blas_comm.c | 0 .../rainbowI-classic/clean/blas_comm.h | 0 .../sign}/rainbow/rainbowI-classic/clean/gf.c | 0 .../sign}/rainbow/rainbowI-classic/clean/gf.h | 0 .../clean/parallel_matrix_op.c | 0 .../clean/parallel_matrix_op.h | 0 .../rainbow/rainbowI-classic/clean/rainbow.c | 0 .../rainbow/rainbowI-classic/clean/rainbow.h | 0 .../rainbowI-classic/clean/rainbow_blas.h | 0 .../rainbowI-classic/clean/rainbow_config.h | 0 .../rainbowI-classic/clean/rainbow_keypair.c | 0 .../rainbowI-classic/clean/rainbow_keypair.h | 0 .../clean/rainbow_keypair_computation.c | 0 .../clean/rainbow_keypair_computation.h | 0 .../rainbow/rainbowI-classic/clean/sign.c | 0 .../rainbowI-classic/clean/utils_hash.c | 0 .../rainbowI-classic/clean/utils_hash.h | 0 .../rainbowI-classic/clean/utils_prng.c | 0 .../rainbowI-classic/clean/utils_prng.h | 0 .../rainbowIII-classic/clean/CMakeLists.txt | 16 + .../rainbow/rainbowIII-classic/clean/api.h | 0 .../rainbow/rainbowIII-classic/clean/blas.c | 0 .../rainbow/rainbowIII-classic/clean/blas.h | 0 .../rainbowIII-classic/clean/blas_comm.c | 0 .../rainbowIII-classic/clean/blas_comm.h | 0 .../rainbow/rainbowIII-classic/clean/gf.c | 0 .../rainbow/rainbowIII-classic/clean/gf.h | 0 .../clean/parallel_matrix_op.c | 0 .../clean/parallel_matrix_op.h | 0 .../rainbowIII-classic/clean/rainbow.c | 0 .../rainbowIII-classic/clean/rainbow.h | 0 .../rainbowIII-classic/clean/rainbow_blas.h | 0 .../rainbowIII-classic/clean/rainbow_config.h | 0 .../clean/rainbow_keypair.c | 0 .../clean/rainbow_keypair.h | 0 .../clean/rainbow_keypair_computation.c | 0 .../clean/rainbow_keypair_computation.h | 0 .../rainbow/rainbowIII-classic/clean/sign.c | 0 .../rainbowIII-classic/clean/utils_hash.c | 0 .../rainbowIII-classic/clean/utils_hash.h | 0 .../rainbowIII-classic/clean/utils_prng.c | 0 .../rainbowIII-classic/clean/utils_prng.h | 0 .../rainbowV-classic/clean/CMakeLists.txt | 16 + .../rainbow/rainbowV-classic/clean/api.h | 0 .../rainbow/rainbowV-classic/clean/blas.c | 0 .../rainbow/rainbowV-classic/clean/blas.h | 0 .../rainbowV-classic/clean/blas_comm.c | 0 .../rainbowV-classic/clean/blas_comm.h | 0 .../sign}/rainbow/rainbowV-classic/clean/gf.c | 0 .../sign}/rainbow/rainbowV-classic/clean/gf.h | 0 .../clean/parallel_matrix_op.c | 0 .../clean/parallel_matrix_op.h | 0 .../rainbow/rainbowV-classic/clean/rainbow.c | 0 .../rainbow/rainbowV-classic/clean/rainbow.h | 0 .../rainbowV-classic/clean/rainbow_blas.h | 0 .../rainbowV-classic/clean/rainbow_config.h | 0 .../rainbowV-classic/clean/rainbow_keypair.c | 0 .../rainbowV-classic/clean/rainbow_keypair.h | 0 .../clean/rainbow_keypair_computation.c | 0 .../clean/rainbow_keypair_computation.h | 0 .../rainbow/rainbowV-classic/clean/sign.c | 0 .../rainbowV-classic/clean/utils_hash.c | 0 .../rainbowV-classic/clean/utils_hash.h | 0 .../rainbowV-classic/clean/utils_prng.c | 0 .../rainbowV-classic/clean/utils_prng.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-128f-robust/avx2/address.c | 0 .../sphincs-sha256-128f-robust/avx2/address.h | 0 .../sphincs-sha256-128f-robust/avx2/api.h | 0 .../sphincs-sha256-128f-robust/avx2/fors.c | 0 .../sphincs-sha256-128f-robust/avx2/fors.h | 0 .../sphincs-sha256-128f-robust/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-128f-robust/avx2/hashx8.h | 0 .../sphincs-sha256-128f-robust/avx2/params.h | 0 .../sphincs-sha256-128f-robust/avx2/sha256.c | 0 .../sphincs-sha256-128f-robust/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-128f-robust/avx2/sign.c | 0 .../sphincs-sha256-128f-robust/avx2/thash.h | 0 .../avx2/thash_sha256_robust.c | 0 .../avx2/thash_sha256_robustx8.c | 0 .../sphincs-sha256-128f-robust/avx2/thashx8.h | 0 .../sphincs-sha256-128f-robust/avx2/utils.c | 0 .../sphincs-sha256-128f-robust/avx2/utils.h | 0 .../sphincs-sha256-128f-robust/avx2/utilsx8.c | 0 .../sphincs-sha256-128f-robust/avx2/utilsx8.h | 0 .../sphincs-sha256-128f-robust/avx2/wots.c | 0 .../sphincs-sha256-128f-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-128f-robust/clean/api.h | 0 .../sphincs-sha256-128f-robust/clean/fors.c | 0 .../sphincs-sha256-128f-robust/clean/fors.h | 0 .../sphincs-sha256-128f-robust/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-128f-robust/clean/params.h | 0 .../sphincs-sha256-128f-robust/clean/sha256.c | 0 .../sphincs-sha256-128f-robust/clean/sha256.h | 0 .../sphincs-sha256-128f-robust/clean/sign.c | 0 .../sphincs-sha256-128f-robust/clean/thash.h | 0 .../clean/thash_sha256_robust.c | 0 .../sphincs-sha256-128f-robust/clean/utils.c | 0 .../sphincs-sha256-128f-robust/clean/utils.h | 0 .../sphincs-sha256-128f-robust/clean/wots.c | 0 .../sphincs-sha256-128f-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-128f-simple/avx2/address.c | 0 .../sphincs-sha256-128f-simple/avx2/address.h | 0 .../sphincs-sha256-128f-simple/avx2/api.h | 0 .../sphincs-sha256-128f-simple/avx2/fors.c | 0 .../sphincs-sha256-128f-simple/avx2/fors.h | 0 .../sphincs-sha256-128f-simple/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-128f-simple/avx2/hashx8.h | 0 .../sphincs-sha256-128f-simple/avx2/params.h | 0 .../sphincs-sha256-128f-simple/avx2/sha256.c | 0 .../sphincs-sha256-128f-simple/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-128f-simple/avx2/sign.c | 0 .../sphincs-sha256-128f-simple/avx2/thash.h | 0 .../avx2/thash_sha256_simple.c | 0 .../avx2/thash_sha256_simplex8.c | 0 .../sphincs-sha256-128f-simple/avx2/thashx8.h | 0 .../sphincs-sha256-128f-simple/avx2/utils.c | 0 .../sphincs-sha256-128f-simple/avx2/utils.h | 0 .../sphincs-sha256-128f-simple/avx2/utilsx8.c | 0 .../sphincs-sha256-128f-simple/avx2/utilsx8.h | 0 .../sphincs-sha256-128f-simple/avx2/wots.c | 0 .../sphincs-sha256-128f-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 15 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-128f-simple/clean/api.h | 0 .../sphincs-sha256-128f-simple/clean/fors.c | 0 .../sphincs-sha256-128f-simple/clean/fors.h | 0 .../sphincs-sha256-128f-simple/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-128f-simple/clean/params.h | 0 .../sphincs-sha256-128f-simple/clean/sha256.c | 0 .../sphincs-sha256-128f-simple/clean/sha256.h | 0 .../sphincs-sha256-128f-simple/clean/sign.c | 0 .../sphincs-sha256-128f-simple/clean/thash.h | 0 .../clean/thash_sha256_simple.c | 0 .../sphincs-sha256-128f-simple/clean/utils.c | 0 .../sphincs-sha256-128f-simple/clean/utils.h | 0 .../sphincs-sha256-128f-simple/clean/wots.c | 0 .../sphincs-sha256-128f-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-128s-robust/avx2/address.c | 0 .../sphincs-sha256-128s-robust/avx2/address.h | 0 .../sphincs-sha256-128s-robust/avx2/api.h | 0 .../sphincs-sha256-128s-robust/avx2/fors.c | 0 .../sphincs-sha256-128s-robust/avx2/fors.h | 0 .../sphincs-sha256-128s-robust/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-128s-robust/avx2/hashx8.h | 0 .../sphincs-sha256-128s-robust/avx2/params.h | 0 .../sphincs-sha256-128s-robust/avx2/sha256.c | 0 .../sphincs-sha256-128s-robust/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-128s-robust/avx2/sign.c | 0 .../sphincs-sha256-128s-robust/avx2/thash.h | 0 .../avx2/thash_sha256_robust.c | 0 .../avx2/thash_sha256_robustx8.c | 0 .../sphincs-sha256-128s-robust/avx2/thashx8.h | 0 .../sphincs-sha256-128s-robust/avx2/utils.c | 0 .../sphincs-sha256-128s-robust/avx2/utils.h | 0 .../sphincs-sha256-128s-robust/avx2/utilsx8.c | 0 .../sphincs-sha256-128s-robust/avx2/utilsx8.h | 0 .../sphincs-sha256-128s-robust/avx2/wots.c | 0 .../sphincs-sha256-128s-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-128s-robust/clean/api.h | 0 .../sphincs-sha256-128s-robust/clean/fors.c | 0 .../sphincs-sha256-128s-robust/clean/fors.h | 0 .../sphincs-sha256-128s-robust/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-128s-robust/clean/params.h | 0 .../sphincs-sha256-128s-robust/clean/sha256.c | 0 .../sphincs-sha256-128s-robust/clean/sha256.h | 0 .../sphincs-sha256-128s-robust/clean/sign.c | 0 .../sphincs-sha256-128s-robust/clean/thash.h | 0 .../clean/thash_sha256_robust.c | 0 .../sphincs-sha256-128s-robust/clean/utils.c | 0 .../sphincs-sha256-128s-robust/clean/utils.h | 0 .../sphincs-sha256-128s-robust/clean/wots.c | 0 .../sphincs-sha256-128s-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-128s-simple/avx2/address.c | 0 .../sphincs-sha256-128s-simple/avx2/address.h | 0 .../sphincs-sha256-128s-simple/avx2/api.h | 0 .../sphincs-sha256-128s-simple/avx2/fors.c | 0 .../sphincs-sha256-128s-simple/avx2/fors.h | 0 .../sphincs-sha256-128s-simple/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-128s-simple/avx2/hashx8.h | 0 .../sphincs-sha256-128s-simple/avx2/params.h | 0 .../sphincs-sha256-128s-simple/avx2/sha256.c | 0 .../sphincs-sha256-128s-simple/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-128s-simple/avx2/sign.c | 0 .../sphincs-sha256-128s-simple/avx2/thash.h | 0 .../avx2/thash_sha256_simple.c | 0 .../avx2/thash_sha256_simplex8.c | 0 .../sphincs-sha256-128s-simple/avx2/thashx8.h | 0 .../sphincs-sha256-128s-simple/avx2/utils.c | 0 .../sphincs-sha256-128s-simple/avx2/utils.h | 0 .../sphincs-sha256-128s-simple/avx2/utilsx8.c | 0 .../sphincs-sha256-128s-simple/avx2/utilsx8.h | 0 .../sphincs-sha256-128s-simple/avx2/wots.c | 0 .../sphincs-sha256-128s-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-128s-simple/clean/api.h | 0 .../sphincs-sha256-128s-simple/clean/fors.c | 0 .../sphincs-sha256-128s-simple/clean/fors.h | 0 .../sphincs-sha256-128s-simple/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-128s-simple/clean/params.h | 0 .../sphincs-sha256-128s-simple/clean/sha256.c | 0 .../sphincs-sha256-128s-simple/clean/sha256.h | 0 .../sphincs-sha256-128s-simple/clean/sign.c | 0 .../sphincs-sha256-128s-simple/clean/thash.h | 0 .../clean/thash_sha256_simple.c | 0 .../sphincs-sha256-128s-simple/clean/utils.c | 0 .../sphincs-sha256-128s-simple/clean/utils.h | 0 .../sphincs-sha256-128s-simple/clean/wots.c | 0 .../sphincs-sha256-128s-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-192f-robust/avx2/address.c | 0 .../sphincs-sha256-192f-robust/avx2/address.h | 0 .../sphincs-sha256-192f-robust/avx2/api.h | 0 .../sphincs-sha256-192f-robust/avx2/fors.c | 0 .../sphincs-sha256-192f-robust/avx2/fors.h | 0 .../sphincs-sha256-192f-robust/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-192f-robust/avx2/hashx8.h | 0 .../sphincs-sha256-192f-robust/avx2/params.h | 0 .../sphincs-sha256-192f-robust/avx2/sha256.c | 0 .../sphincs-sha256-192f-robust/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-192f-robust/avx2/sign.c | 0 .../sphincs-sha256-192f-robust/avx2/thash.h | 0 .../avx2/thash_sha256_robust.c | 0 .../avx2/thash_sha256_robustx8.c | 0 .../sphincs-sha256-192f-robust/avx2/thashx8.h | 0 .../sphincs-sha256-192f-robust/avx2/utils.c | 0 .../sphincs-sha256-192f-robust/avx2/utils.h | 0 .../sphincs-sha256-192f-robust/avx2/utilsx8.c | 0 .../sphincs-sha256-192f-robust/avx2/utilsx8.h | 0 .../sphincs-sha256-192f-robust/avx2/wots.c | 0 .../sphincs-sha256-192f-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 15 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-192f-robust/clean/api.h | 0 .../sphincs-sha256-192f-robust/clean/fors.c | 0 .../sphincs-sha256-192f-robust/clean/fors.h | 0 .../sphincs-sha256-192f-robust/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-192f-robust/clean/params.h | 0 .../sphincs-sha256-192f-robust/clean/sha256.c | 0 .../sphincs-sha256-192f-robust/clean/sha256.h | 0 .../sphincs-sha256-192f-robust/clean/sign.c | 0 .../sphincs-sha256-192f-robust/clean/thash.h | 0 .../clean/thash_sha256_robust.c | 0 .../sphincs-sha256-192f-robust/clean/utils.c | 0 .../sphincs-sha256-192f-robust/clean/utils.h | 0 .../sphincs-sha256-192f-robust/clean/wots.c | 0 .../sphincs-sha256-192f-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-192f-simple/avx2/address.c | 0 .../sphincs-sha256-192f-simple/avx2/address.h | 0 .../sphincs-sha256-192f-simple/avx2/api.h | 0 .../sphincs-sha256-192f-simple/avx2/fors.c | 0 .../sphincs-sha256-192f-simple/avx2/fors.h | 0 .../sphincs-sha256-192f-simple/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-192f-simple/avx2/hashx8.h | 0 .../sphincs-sha256-192f-simple/avx2/params.h | 0 .../sphincs-sha256-192f-simple/avx2/sha256.c | 0 .../sphincs-sha256-192f-simple/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-192f-simple/avx2/sign.c | 0 .../sphincs-sha256-192f-simple/avx2/thash.h | 0 .../avx2/thash_sha256_simple.c | 0 .../avx2/thash_sha256_simplex8.c | 0 .../sphincs-sha256-192f-simple/avx2/thashx8.h | 0 .../sphincs-sha256-192f-simple/avx2/utils.c | 0 .../sphincs-sha256-192f-simple/avx2/utils.h | 0 .../sphincs-sha256-192f-simple/avx2/utilsx8.c | 0 .../sphincs-sha256-192f-simple/avx2/utilsx8.h | 0 .../sphincs-sha256-192f-simple/avx2/wots.c | 0 .../sphincs-sha256-192f-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-192f-simple/clean/api.h | 0 .../sphincs-sha256-192f-simple/clean/fors.c | 0 .../sphincs-sha256-192f-simple/clean/fors.h | 0 .../sphincs-sha256-192f-simple/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-192f-simple/clean/params.h | 0 .../sphincs-sha256-192f-simple/clean/sha256.c | 0 .../sphincs-sha256-192f-simple/clean/sha256.h | 0 .../sphincs-sha256-192f-simple/clean/sign.c | 0 .../sphincs-sha256-192f-simple/clean/thash.h | 0 .../clean/thash_sha256_simple.c | 0 .../sphincs-sha256-192f-simple/clean/utils.c | 0 .../sphincs-sha256-192f-simple/clean/utils.h | 0 .../sphincs-sha256-192f-simple/clean/wots.c | 0 .../sphincs-sha256-192f-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-192s-robust/avx2/address.c | 0 .../sphincs-sha256-192s-robust/avx2/address.h | 0 .../sphincs-sha256-192s-robust/avx2/api.h | 0 .../sphincs-sha256-192s-robust/avx2/fors.c | 0 .../sphincs-sha256-192s-robust/avx2/fors.h | 0 .../sphincs-sha256-192s-robust/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-192s-robust/avx2/hashx8.h | 0 .../sphincs-sha256-192s-robust/avx2/params.h | 0 .../sphincs-sha256-192s-robust/avx2/sha256.c | 0 .../sphincs-sha256-192s-robust/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-192s-robust/avx2/sign.c | 0 .../sphincs-sha256-192s-robust/avx2/thash.h | 0 .../avx2/thash_sha256_robust.c | 0 .../avx2/thash_sha256_robustx8.c | 0 .../sphincs-sha256-192s-robust/avx2/thashx8.h | 0 .../sphincs-sha256-192s-robust/avx2/utils.c | 0 .../sphincs-sha256-192s-robust/avx2/utils.h | 0 .../sphincs-sha256-192s-robust/avx2/utilsx8.c | 0 .../sphincs-sha256-192s-robust/avx2/utilsx8.h | 0 .../sphincs-sha256-192s-robust/avx2/wots.c | 0 .../sphincs-sha256-192s-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-192s-robust/clean/api.h | 0 .../sphincs-sha256-192s-robust/clean/fors.c | 0 .../sphincs-sha256-192s-robust/clean/fors.h | 0 .../sphincs-sha256-192s-robust/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-192s-robust/clean/params.h | 0 .../sphincs-sha256-192s-robust/clean/sha256.c | 0 .../sphincs-sha256-192s-robust/clean/sha256.h | 0 .../sphincs-sha256-192s-robust/clean/sign.c | 0 .../sphincs-sha256-192s-robust/clean/thash.h | 0 .../clean/thash_sha256_robust.c | 0 .../sphincs-sha256-192s-robust/clean/utils.c | 0 .../sphincs-sha256-192s-robust/clean/utils.h | 0 .../sphincs-sha256-192s-robust/clean/wots.c | 0 .../sphincs-sha256-192s-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-192s-simple/avx2/address.c | 0 .../sphincs-sha256-192s-simple/avx2/address.h | 0 .../sphincs-sha256-192s-simple/avx2/api.h | 0 .../sphincs-sha256-192s-simple/avx2/fors.c | 0 .../sphincs-sha256-192s-simple/avx2/fors.h | 0 .../sphincs-sha256-192s-simple/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-192s-simple/avx2/hashx8.h | 0 .../sphincs-sha256-192s-simple/avx2/params.h | 0 .../sphincs-sha256-192s-simple/avx2/sha256.c | 0 .../sphincs-sha256-192s-simple/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-192s-simple/avx2/sign.c | 0 .../sphincs-sha256-192s-simple/avx2/thash.h | 0 .../avx2/thash_sha256_simple.c | 0 .../avx2/thash_sha256_simplex8.c | 0 .../sphincs-sha256-192s-simple/avx2/thashx8.h | 0 .../sphincs-sha256-192s-simple/avx2/utils.c | 0 .../sphincs-sha256-192s-simple/avx2/utils.h | 0 .../sphincs-sha256-192s-simple/avx2/utilsx8.c | 0 .../sphincs-sha256-192s-simple/avx2/utilsx8.h | 0 .../sphincs-sha256-192s-simple/avx2/wots.c | 0 .../sphincs-sha256-192s-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-192s-simple/clean/api.h | 0 .../sphincs-sha256-192s-simple/clean/fors.c | 0 .../sphincs-sha256-192s-simple/clean/fors.h | 0 .../sphincs-sha256-192s-simple/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-192s-simple/clean/params.h | 0 .../sphincs-sha256-192s-simple/clean/sha256.c | 0 .../sphincs-sha256-192s-simple/clean/sha256.h | 0 .../sphincs-sha256-192s-simple/clean/sign.c | 0 .../sphincs-sha256-192s-simple/clean/thash.h | 0 .../clean/thash_sha256_simple.c | 0 .../sphincs-sha256-192s-simple/clean/utils.c | 0 .../sphincs-sha256-192s-simple/clean/utils.h | 0 .../sphincs-sha256-192s-simple/clean/wots.c | 0 .../sphincs-sha256-192s-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-256f-robust/avx2/address.c | 0 .../sphincs-sha256-256f-robust/avx2/address.h | 0 .../sphincs-sha256-256f-robust/avx2/api.h | 0 .../sphincs-sha256-256f-robust/avx2/fors.c | 0 .../sphincs-sha256-256f-robust/avx2/fors.h | 0 .../sphincs-sha256-256f-robust/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-256f-robust/avx2/hashx8.h | 0 .../sphincs-sha256-256f-robust/avx2/params.h | 0 .../sphincs-sha256-256f-robust/avx2/sha256.c | 0 .../sphincs-sha256-256f-robust/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-256f-robust/avx2/sign.c | 0 .../sphincs-sha256-256f-robust/avx2/thash.h | 0 .../avx2/thash_sha256_robust.c | 0 .../avx2/thash_sha256_robustx8.c | 0 .../sphincs-sha256-256f-robust/avx2/thashx8.h | 0 .../sphincs-sha256-256f-robust/avx2/utils.c | 0 .../sphincs-sha256-256f-robust/avx2/utils.h | 0 .../sphincs-sha256-256f-robust/avx2/utilsx8.c | 0 .../sphincs-sha256-256f-robust/avx2/utilsx8.h | 0 .../sphincs-sha256-256f-robust/avx2/wots.c | 0 .../sphincs-sha256-256f-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-256f-robust/clean/api.h | 0 .../sphincs-sha256-256f-robust/clean/fors.c | 0 .../sphincs-sha256-256f-robust/clean/fors.h | 0 .../sphincs-sha256-256f-robust/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-256f-robust/clean/params.h | 0 .../sphincs-sha256-256f-robust/clean/sha256.c | 0 .../sphincs-sha256-256f-robust/clean/sha256.h | 0 .../sphincs-sha256-256f-robust/clean/sign.c | 0 .../sphincs-sha256-256f-robust/clean/thash.h | 0 .../clean/thash_sha256_robust.c | 0 .../sphincs-sha256-256f-robust/clean/utils.c | 0 .../sphincs-sha256-256f-robust/clean/utils.h | 0 .../sphincs-sha256-256f-robust/clean/wots.c | 0 .../sphincs-sha256-256f-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-256f-simple/avx2/address.c | 0 .../sphincs-sha256-256f-simple/avx2/address.h | 0 .../sphincs-sha256-256f-simple/avx2/api.h | 0 .../sphincs-sha256-256f-simple/avx2/fors.c | 0 .../sphincs-sha256-256f-simple/avx2/fors.h | 0 .../sphincs-sha256-256f-simple/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-256f-simple/avx2/hashx8.h | 0 .../sphincs-sha256-256f-simple/avx2/params.h | 0 .../sphincs-sha256-256f-simple/avx2/sha256.c | 0 .../sphincs-sha256-256f-simple/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-256f-simple/avx2/sign.c | 0 .../sphincs-sha256-256f-simple/avx2/thash.h | 0 .../avx2/thash_sha256_simple.c | 0 .../avx2/thash_sha256_simplex8.c | 0 .../sphincs-sha256-256f-simple/avx2/thashx8.h | 0 .../sphincs-sha256-256f-simple/avx2/utils.c | 0 .../sphincs-sha256-256f-simple/avx2/utils.h | 0 .../sphincs-sha256-256f-simple/avx2/utilsx8.c | 0 .../sphincs-sha256-256f-simple/avx2/utilsx8.h | 0 .../sphincs-sha256-256f-simple/avx2/wots.c | 0 .../sphincs-sha256-256f-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 15 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-256f-simple/clean/api.h | 0 .../sphincs-sha256-256f-simple/clean/fors.c | 0 .../sphincs-sha256-256f-simple/clean/fors.h | 0 .../sphincs-sha256-256f-simple/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-256f-simple/clean/params.h | 0 .../sphincs-sha256-256f-simple/clean/sha256.c | 0 .../sphincs-sha256-256f-simple/clean/sha256.h | 0 .../sphincs-sha256-256f-simple/clean/sign.c | 0 .../sphincs-sha256-256f-simple/clean/thash.h | 0 .../clean/thash_sha256_simple.c | 0 .../sphincs-sha256-256f-simple/clean/utils.c | 0 .../sphincs-sha256-256f-simple/clean/utils.h | 0 .../sphincs-sha256-256f-simple/clean/wots.c | 0 .../sphincs-sha256-256f-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-256s-robust/avx2/address.c | 0 .../sphincs-sha256-256s-robust/avx2/address.h | 0 .../sphincs-sha256-256s-robust/avx2/api.h | 0 .../sphincs-sha256-256s-robust/avx2/fors.c | 0 .../sphincs-sha256-256s-robust/avx2/fors.h | 0 .../sphincs-sha256-256s-robust/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-256s-robust/avx2/hashx8.h | 0 .../sphincs-sha256-256s-robust/avx2/params.h | 0 .../sphincs-sha256-256s-robust/avx2/sha256.c | 0 .../sphincs-sha256-256s-robust/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-256s-robust/avx2/sign.c | 0 .../sphincs-sha256-256s-robust/avx2/thash.h | 0 .../avx2/thash_sha256_robust.c | 0 .../avx2/thash_sha256_robustx8.c | 0 .../sphincs-sha256-256s-robust/avx2/thashx8.h | 0 .../sphincs-sha256-256s-robust/avx2/utils.c | 0 .../sphincs-sha256-256s-robust/avx2/utils.h | 0 .../sphincs-sha256-256s-robust/avx2/utilsx8.c | 0 .../sphincs-sha256-256s-robust/avx2/utilsx8.h | 0 .../sphincs-sha256-256s-robust/avx2/wots.c | 0 .../sphincs-sha256-256s-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-256s-robust/clean/api.h | 0 .../sphincs-sha256-256s-robust/clean/fors.c | 0 .../sphincs-sha256-256s-robust/clean/fors.h | 0 .../sphincs-sha256-256s-robust/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-256s-robust/clean/params.h | 0 .../sphincs-sha256-256s-robust/clean/sha256.c | 0 .../sphincs-sha256-256s-robust/clean/sha256.h | 0 .../sphincs-sha256-256s-robust/clean/sign.c | 0 .../sphincs-sha256-256s-robust/clean/thash.h | 0 .../clean/thash_sha256_robust.c | 0 .../sphincs-sha256-256s-robust/clean/utils.c | 0 .../sphincs-sha256-256s-robust/clean/utils.h | 0 .../sphincs-sha256-256s-robust/clean/wots.c | 0 .../sphincs-sha256-256s-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 19 + .../sphincs-sha256-256s-simple/avx2/address.c | 0 .../sphincs-sha256-256s-simple/avx2/address.h | 0 .../sphincs-sha256-256s-simple/avx2/api.h | 0 .../sphincs-sha256-256s-simple/avx2/fors.c | 0 .../sphincs-sha256-256s-simple/avx2/fors.h | 0 .../sphincs-sha256-256s-simple/avx2/hash.h | 0 .../avx2/hash_sha256.c | 0 .../avx2/hash_sha256x8.c | 0 .../avx2/hash_state.h | 0 .../sphincs-sha256-256s-simple/avx2/hashx8.h | 0 .../sphincs-sha256-256s-simple/avx2/params.h | 0 .../sphincs-sha256-256s-simple/avx2/sha256.c | 0 .../sphincs-sha256-256s-simple/avx2/sha256.h | 0 .../avx2/sha256avx.c | 0 .../avx2/sha256avx.h | 0 .../avx2/sha256x8.c | 0 .../avx2/sha256x8.h | 0 .../sphincs-sha256-256s-simple/avx2/sign.c | 0 .../sphincs-sha256-256s-simple/avx2/thash.h | 0 .../avx2/thash_sha256_simple.c | 0 .../avx2/thash_sha256_simplex8.c | 0 .../sphincs-sha256-256s-simple/avx2/thashx8.h | 0 .../sphincs-sha256-256s-simple/avx2/utils.c | 0 .../sphincs-sha256-256s-simple/avx2/utils.h | 0 .../sphincs-sha256-256s-simple/avx2/utilsx8.c | 0 .../sphincs-sha256-256s-simple/avx2/utilsx8.h | 0 .../sphincs-sha256-256s-simple/avx2/wots.c | 0 .../sphincs-sha256-256s-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-sha256-256s-simple/clean/api.h | 0 .../sphincs-sha256-256s-simple/clean/fors.c | 0 .../sphincs-sha256-256s-simple/clean/fors.h | 0 .../sphincs-sha256-256s-simple/clean/hash.h | 0 .../clean/hash_sha256.c | 0 .../clean/hash_state.h | 0 .../sphincs-sha256-256s-simple/clean/params.h | 0 .../sphincs-sha256-256s-simple/clean/sha256.c | 0 .../sphincs-sha256-256s-simple/clean/sha256.h | 0 .../sphincs-sha256-256s-simple/clean/sign.c | 0 .../sphincs-sha256-256s-simple/clean/thash.h | 0 .../clean/thash_sha256_simple.c | 0 .../sphincs-sha256-256s-simple/clean/utils.c | 0 .../sphincs-sha256-256s-simple/clean/utils.h | 0 .../sphincs-sha256-256s-simple/clean/wots.c | 0 .../sphincs-sha256-256s-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-128f-robust/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-128f-robust/avx2/fors.c | 0 .../sphincs-shake256-128f-robust/avx2/fors.h | 0 .../sphincs-shake256-128f-robust/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-128f-robust/avx2/sign.c | 0 .../sphincs-shake256-128f-robust/avx2/thash.h | 0 .../avx2/thash_shake256_robust.c | 0 .../avx2/thash_shake256_robustx4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-128f-robust/avx2/utils.c | 0 .../sphincs-shake256-128f-robust/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-128f-robust/avx2/wots.c | 0 .../sphincs-shake256-128f-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-128f-robust/clean/api.h | 0 .../sphincs-shake256-128f-robust/clean/fors.c | 0 .../sphincs-shake256-128f-robust/clean/fors.h | 0 .../sphincs-shake256-128f-robust/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-128f-robust/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_robust.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-128f-robust/clean/wots.c | 0 .../sphincs-shake256-128f-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-128f-simple/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-128f-simple/avx2/fors.c | 0 .../sphincs-shake256-128f-simple/avx2/fors.h | 0 .../sphincs-shake256-128f-simple/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-128f-simple/avx2/sign.c | 0 .../sphincs-shake256-128f-simple/avx2/thash.h | 0 .../avx2/thash_shake256_simple.c | 0 .../avx2/thash_shake256_simplex4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-128f-simple/avx2/utils.c | 0 .../sphincs-shake256-128f-simple/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-128f-simple/avx2/wots.c | 0 .../sphincs-shake256-128f-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-128f-simple/clean/api.h | 0 .../sphincs-shake256-128f-simple/clean/fors.c | 0 .../sphincs-shake256-128f-simple/clean/fors.h | 0 .../sphincs-shake256-128f-simple/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-128f-simple/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_simple.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-128f-simple/clean/wots.c | 0 .../sphincs-shake256-128f-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-128s-robust/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-128s-robust/avx2/fors.c | 0 .../sphincs-shake256-128s-robust/avx2/fors.h | 0 .../sphincs-shake256-128s-robust/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-128s-robust/avx2/sign.c | 0 .../sphincs-shake256-128s-robust/avx2/thash.h | 0 .../avx2/thash_shake256_robust.c | 0 .../avx2/thash_shake256_robustx4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-128s-robust/avx2/utils.c | 0 .../sphincs-shake256-128s-robust/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-128s-robust/avx2/wots.c | 0 .../sphincs-shake256-128s-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-128s-robust/clean/api.h | 0 .../sphincs-shake256-128s-robust/clean/fors.c | 0 .../sphincs-shake256-128s-robust/clean/fors.h | 0 .../sphincs-shake256-128s-robust/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-128s-robust/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_robust.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-128s-robust/clean/wots.c | 0 .../sphincs-shake256-128s-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-128s-simple/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-128s-simple/avx2/fors.c | 0 .../sphincs-shake256-128s-simple/avx2/fors.h | 0 .../sphincs-shake256-128s-simple/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-128s-simple/avx2/sign.c | 0 .../sphincs-shake256-128s-simple/avx2/thash.h | 0 .../avx2/thash_shake256_simple.c | 0 .../avx2/thash_shake256_simplex4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-128s-simple/avx2/utils.c | 0 .../sphincs-shake256-128s-simple/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-128s-simple/avx2/wots.c | 0 .../sphincs-shake256-128s-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-128s-simple/clean/api.h | 0 .../sphincs-shake256-128s-simple/clean/fors.c | 0 .../sphincs-shake256-128s-simple/clean/fors.h | 0 .../sphincs-shake256-128s-simple/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-128s-simple/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_simple.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-128s-simple/clean/wots.c | 0 .../sphincs-shake256-128s-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 17 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-192f-robust/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-192f-robust/avx2/fors.c | 0 .../sphincs-shake256-192f-robust/avx2/fors.h | 0 .../sphincs-shake256-192f-robust/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-192f-robust/avx2/sign.c | 0 .../sphincs-shake256-192f-robust/avx2/thash.h | 0 .../avx2/thash_shake256_robust.c | 0 .../avx2/thash_shake256_robustx4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-192f-robust/avx2/utils.c | 0 .../sphincs-shake256-192f-robust/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-192f-robust/avx2/wots.c | 0 .../sphincs-shake256-192f-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-192f-robust/clean/api.h | 0 .../sphincs-shake256-192f-robust/clean/fors.c | 0 .../sphincs-shake256-192f-robust/clean/fors.h | 0 .../sphincs-shake256-192f-robust/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-192f-robust/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_robust.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-192f-robust/clean/wots.c | 0 .../sphincs-shake256-192f-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-192f-simple/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-192f-simple/avx2/fors.c | 0 .../sphincs-shake256-192f-simple/avx2/fors.h | 0 .../sphincs-shake256-192f-simple/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-192f-simple/avx2/sign.c | 0 .../sphincs-shake256-192f-simple/avx2/thash.h | 0 .../avx2/thash_shake256_simple.c | 0 .../avx2/thash_shake256_simplex4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-192f-simple/avx2/utils.c | 0 .../sphincs-shake256-192f-simple/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-192f-simple/avx2/wots.c | 0 .../sphincs-shake256-192f-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-192f-simple/clean/api.h | 0 .../sphincs-shake256-192f-simple/clean/fors.c | 0 .../sphincs-shake256-192f-simple/clean/fors.h | 0 .../sphincs-shake256-192f-simple/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-192f-simple/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_simple.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-192f-simple/clean/wots.c | 0 .../sphincs-shake256-192f-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-192s-robust/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-192s-robust/avx2/fors.c | 0 .../sphincs-shake256-192s-robust/avx2/fors.h | 0 .../sphincs-shake256-192s-robust/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-192s-robust/avx2/sign.c | 0 .../sphincs-shake256-192s-robust/avx2/thash.h | 0 .../avx2/thash_shake256_robust.c | 0 .../avx2/thash_shake256_robustx4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-192s-robust/avx2/utils.c | 0 .../sphincs-shake256-192s-robust/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-192s-robust/avx2/wots.c | 0 .../sphincs-shake256-192s-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-192s-robust/clean/api.h | 0 .../sphincs-shake256-192s-robust/clean/fors.c | 0 .../sphincs-shake256-192s-robust/clean/fors.h | 0 .../sphincs-shake256-192s-robust/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-192s-robust/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_robust.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-192s-robust/clean/wots.c | 0 .../sphincs-shake256-192s-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 17 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-192s-simple/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-192s-simple/avx2/fors.c | 0 .../sphincs-shake256-192s-simple/avx2/fors.h | 0 .../sphincs-shake256-192s-simple/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-192s-simple/avx2/sign.c | 0 .../sphincs-shake256-192s-simple/avx2/thash.h | 0 .../avx2/thash_shake256_simple.c | 0 .../avx2/thash_shake256_simplex4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-192s-simple/avx2/utils.c | 0 .../sphincs-shake256-192s-simple/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-192s-simple/avx2/wots.c | 0 .../sphincs-shake256-192s-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-192s-simple/clean/api.h | 0 .../sphincs-shake256-192s-simple/clean/fors.c | 0 .../sphincs-shake256-192s-simple/clean/fors.h | 0 .../sphincs-shake256-192s-simple/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-192s-simple/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_simple.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-192s-simple/clean/wots.c | 0 .../sphincs-shake256-192s-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-256f-robust/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-256f-robust/avx2/fors.c | 0 .../sphincs-shake256-256f-robust/avx2/fors.h | 0 .../sphincs-shake256-256f-robust/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-256f-robust/avx2/sign.c | 0 .../sphincs-shake256-256f-robust/avx2/thash.h | 0 .../avx2/thash_shake256_robust.c | 0 .../avx2/thash_shake256_robustx4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-256f-robust/avx2/utils.c | 0 .../sphincs-shake256-256f-robust/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-256f-robust/avx2/wots.c | 0 .../sphincs-shake256-256f-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-256f-robust/clean/api.h | 0 .../sphincs-shake256-256f-robust/clean/fors.c | 0 .../sphincs-shake256-256f-robust/clean/fors.h | 0 .../sphincs-shake256-256f-robust/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-256f-robust/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_robust.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-256f-robust/clean/wots.c | 0 .../sphincs-shake256-256f-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-256f-simple/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-256f-simple/avx2/fors.c | 0 .../sphincs-shake256-256f-simple/avx2/fors.h | 0 .../sphincs-shake256-256f-simple/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-256f-simple/avx2/sign.c | 0 .../sphincs-shake256-256f-simple/avx2/thash.h | 0 .../avx2/thash_shake256_simple.c | 0 .../avx2/thash_shake256_simplex4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-256f-simple/avx2/utils.c | 0 .../sphincs-shake256-256f-simple/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-256f-simple/avx2/wots.c | 0 .../sphincs-shake256-256f-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-256f-simple/clean/api.h | 0 .../sphincs-shake256-256f-simple/clean/fors.c | 0 .../sphincs-shake256-256f-simple/clean/fors.h | 0 .../sphincs-shake256-256f-simple/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-256f-simple/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_simple.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-256f-simple/clean/wots.c | 0 .../sphincs-shake256-256f-simple/clean/wots.h | 0 .../avx2/CMakeLists.txt | 16 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-256s-robust/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-256s-robust/avx2/fors.c | 0 .../sphincs-shake256-256s-robust/avx2/fors.h | 0 .../sphincs-shake256-256s-robust/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-256s-robust/avx2/sign.c | 0 .../sphincs-shake256-256s-robust/avx2/thash.h | 0 .../avx2/thash_shake256_robust.c | 0 .../avx2/thash_shake256_robustx4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-256s-robust/avx2/utils.c | 0 .../sphincs-shake256-256s-robust/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-256s-robust/avx2/wots.c | 0 .../sphincs-shake256-256s-robust/avx2/wots.h | 0 .../clean/CMakeLists.txt | 13 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-256s-robust/clean/api.h | 0 .../sphincs-shake256-256s-robust/clean/fors.c | 0 .../sphincs-shake256-256s-robust/clean/fors.h | 0 .../sphincs-shake256-256s-robust/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-256s-robust/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_robust.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-256s-robust/clean/wots.c | 0 .../sphincs-shake256-256s-robust/clean/wots.h | 0 .../avx2/CMakeLists.txt | 18 + .../avx2/address.c | 0 .../avx2/address.h | 0 .../sphincs-shake256-256s-simple/avx2/api.h | 0 .../avx2/fips202x4.c | 0 .../avx2/fips202x4.h | 0 .../sphincs-shake256-256s-simple/avx2/fors.c | 0 .../sphincs-shake256-256s-simple/avx2/fors.h | 0 .../sphincs-shake256-256s-simple/avx2/hash.h | 0 .../avx2/hash_shake256.c | 0 .../avx2/hash_shake256x4.c | 0 .../avx2/hash_state.h | 0 .../avx2/hashx4.h | 0 .../avx2/params.h | 0 .../sphincs-shake256-256s-simple/avx2/sign.c | 0 .../sphincs-shake256-256s-simple/avx2/thash.h | 0 .../avx2/thash_shake256_simple.c | 0 .../avx2/thash_shake256_simplex4.c | 0 .../avx2/thashx4.h | 0 .../sphincs-shake256-256s-simple/avx2/utils.c | 0 .../sphincs-shake256-256s-simple/avx2/utils.h | 0 .../avx2/utilsx4.c | 0 .../avx2/utilsx4.h | 0 .../sphincs-shake256-256s-simple/avx2/wots.c | 0 .../sphincs-shake256-256s-simple/avx2/wots.h | 0 .../clean/CMakeLists.txt | 14 + .../clean/address.c | 0 .../clean/address.h | 0 .../sphincs-shake256-256s-simple/clean/api.h | 0 .../sphincs-shake256-256s-simple/clean/fors.c | 0 .../sphincs-shake256-256s-simple/clean/fors.h | 0 .../sphincs-shake256-256s-simple/clean/hash.h | 0 .../clean/hash_shake256.c | 0 .../clean/hash_state.h | 0 .../clean/params.h | 0 .../sphincs-shake256-256s-simple/clean/sign.c | 0 .../clean/thash.h | 0 .../clean/thash_shake256_simple.c | 0 .../clean/utils.c | 0 .../clean/utils.h | 0 .../sphincs-shake256-256s-simple/clean/wots.c | 0 .../sphincs-shake256-256s-simple/clean/wots.h | 0 test/{crypto_kem => kem}/functest.c | 0 test/{crypto_kem => kem}/nistkat.c | 0 test/{crypto_kem => kem}/printparams.c | 0 test/{crypto_kem => kem}/testvectors.c | 0 test/{crypto_sign => sign}/functest.c | 0 test/{crypto_sign => sign}/nistkat.c | 0 test/{crypto_sign => sign}/printparams.c | 0 test/{crypto_sign => sign}/testvectors.c | 0 3971 files changed, 1887 insertions(+), 258941 deletions(-) create mode 100644 .cmake/common.mk delete mode 100644 common/keccak4x/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/LICENSE delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/api.h delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/common.h delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/kem.c delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/matrix_shake.c delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/noise.c delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/params.h delete mode 100644 crypto_kem/frodo/frodokem1344shake/clean/util.c delete mode 100644 crypto_kem/frodo/frodokem1344shake/opt/LICENSE delete mode 100644 crypto_kem/frodo/frodokem1344shake/opt/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/LICENSE delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/api.h delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/common.h delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/kem.c delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/matrix_shake.c delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/noise.c delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/params.h delete mode 100644 crypto_kem/frodo/frodokem640shake/clean/util.c delete mode 100644 crypto_kem/frodo/frodokem640shake/opt/LICENSE delete mode 100644 crypto_kem/frodo/frodokem640shake/opt/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/LICENSE delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/api.h delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/common.h delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/kem.c delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/matrix_shake.c delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/noise.c delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/params.h delete mode 100644 crypto_kem/frodo/frodokem976shake/clean/util.c delete mode 100644 crypto_kem/frodo/frodokem976shake/opt/LICENSE delete mode 100644 crypto_kem/frodo/frodokem976shake/opt/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/kyber/kyber1024/avx2/LICENSE delete mode 100644 crypto_kem/kyber/kyber1024/clean/LICENSE delete mode 100644 crypto_kem/kyber/kyber1024/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/kyber/kyber512/avx2/LICENSE delete mode 100644 crypto_kem/kyber/kyber512/clean/LICENSE delete mode 100644 crypto_kem/kyber/kyber512/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/kyber/kyber768/avx2/LICENSE delete mode 100644 crypto_kem/kyber/kyber768/clean/LICENSE delete mode 100644 crypto_kem/kyber/kyber768/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece348864/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/transpose_64x64_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/scalars.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece348864/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864f/avx/scalars.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864f/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/scalars.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/transpose_64x64_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/scalars.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece348864f/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece460896/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece460896/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896f/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896f/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896f/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece460896f/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece6688128/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128f/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128f/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128f/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece6688128f/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece6960119/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119f/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119f/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119f/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece6960119f/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece8192128/vec/vec.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/avx/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128f/clean/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128f/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/api.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/benes.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/benes.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/bm.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/bm.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/consts.S delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/fft.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/fft.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/gf.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/gf.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/operations.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/params.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/syndrome_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/transpose_64x128_sp_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/update_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/util.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/util.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/vec128.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/vec128.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/vec128_mul_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128f/sse/vec_reduce_asm.S delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/LICENSE delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/aes256ctr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/aes256ctr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/api.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/benes.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/benes.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/bm.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/bm.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/consts.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/controlbits.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/controlbits.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/crypto_hash.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/decrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/decrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/encrypt.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/encrypt.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/fft.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/fft.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/gf.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/gf.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/operations.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/params.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/powers.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/scalars_2x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/scalars_4x.inc delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/transpose.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/transpose.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/util.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/util.h delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/vec.c delete mode 100644 crypto_kem/mceliece/mceliece8192128f/vec/vec.h delete mode 100644 crypto_kem/ntru/ntruhps2048509/avx2/LICENSE delete mode 100644 crypto_kem/ntru/ntruhps2048509/clean/LICENSE delete mode 100644 crypto_kem/ntru/ntruhps2048509/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/ntru/ntruhps2048677/avx2/LICENSE delete mode 100644 crypto_kem/ntru/ntruhps2048677/clean/LICENSE delete mode 100644 crypto_kem/ntru/ntruhps2048677/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/ntru/ntruhps4096821/avx2/LICENSE delete mode 100644 crypto_kem/ntru/ntruhps4096821/clean/LICENSE delete mode 100644 crypto_kem/ntru/ntruhps4096821/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/ntru/ntruhrss701/avx2/LICENSE delete mode 100644 crypto_kem/ntru/ntruhrss701/clean/LICENSE delete mode 100644 crypto_kem/ntru/ntruhrss701/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/ntru_prime/ntrulpr653/avx2/LICENSE delete mode 100644 crypto_kem/ntru_prime/ntrulpr653/clean/LICENSE delete mode 100644 crypto_kem/ntru_prime/ntrulpr653/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/ntru_prime/ntrulpr761/avx2/LICENSE delete mode 100644 crypto_kem/ntru_prime/ntrulpr761/clean/LICENSE delete mode 100644 crypto_kem/ntru_prime/ntrulpr761/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/ntru_prime/ntrulpr857/avx2/LICENSE delete mode 100644 crypto_kem/ntru_prime/ntrulpr857/clean/LICENSE delete mode 100644 crypto_kem/ntru_prime/ntrulpr857/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/saber/firesaber/avx2/LICENSE delete mode 100644 crypto_kem/saber/firesaber/clean/LICENSE delete mode 100644 crypto_kem/saber/firesaber/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/saber/lightsaber/avx2/LICENSE delete mode 100644 crypto_kem/saber/lightsaber/clean/LICENSE delete mode 100644 crypto_kem/saber/lightsaber/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_kem/saber/saber/avx2/LICENSE delete mode 100644 crypto_kem/saber/saber/clean/LICENSE delete mode 100644 crypto_kem/saber/saber/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/dilithium/dilithium2/avx2/LICENSE delete mode 100644 crypto_sign/dilithium/dilithium2/clean/LICENSE delete mode 100644 crypto_sign/dilithium/dilithium2/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/dilithium/dilithium3/avx2/LICENSE delete mode 100644 crypto_sign/dilithium/dilithium3/clean/LICENSE delete mode 100644 crypto_sign/dilithium/dilithium3/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/dilithium/dilithium5/avx2/LICENSE delete mode 100644 crypto_sign/dilithium/dilithium5/clean/LICENSE delete mode 100644 crypto_sign/dilithium/dilithium5/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/falcon/falcon-1024/avx2/LICENSE delete mode 100644 crypto_sign/falcon/falcon-1024/clean/LICENSE delete mode 100644 crypto_sign/falcon/falcon-1024/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/falcon/falcon-512/avx2/LICENSE delete mode 100644 crypto_sign/falcon/falcon-512/clean/LICENSE delete mode 100644 crypto_sign/falcon/falcon-512/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/rainbow/rainbowI-classic/clean/LICENSE delete mode 100644 crypto_sign/rainbow/rainbowI-classic/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/rainbow/rainbowIII-classic/clean/LICENSE delete mode 100644 crypto_sign/rainbow/rainbowIII-classic/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/rainbow/rainbowV-classic/clean/LICENSE delete mode 100644 crypto_sign/rainbow/rainbowV-classic/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/Makefile.Microsoft_nmake delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/LICENSE delete mode 100644 crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/Makefile.Microsoft_nmake create mode 100644 src/common/Makefile rename {common => src/common}/aes.c (100%) rename {common => src/common}/aes.h (100%) create mode 100644 src/common/cpucycles.c create mode 100644 src/common/cpucycles.h rename {common => src/common}/fips202.c (100%) rename {common => src/common}/fips202.h (100%) rename {common => src/common}/keccak4x/KeccakP-1600-times4-SIMD256.c (100%) rename {common => src/common}/keccak4x/KeccakP-1600-times4-SnP.h (100%) rename {common => src/common}/keccak4x/KeccakP-1600-unrolling.macros (100%) rename {common => src/common}/keccak4x/SIMD256-config.h (100%) rename {common => src/common}/keccak4x/align.h (100%) rename {common => src/common}/keccak4x/brg_endian.h (100%) rename {common => src/common}/nistseedexpander.c (100%) rename {common => src/common}/nistseedexpander.h (100%) rename {common => src/common}/randombytes.c (100%) rename {common => src/common}/randombytes.h (100%) rename {common => src/common}/sha2.c (100%) rename {common => src/common}/sha2.h (100%) rename {common => src/common}/sp800-185.c (100%) rename {common => src/common}/sp800-185.h (100%) create mode 100644 src/common/speed_print.c create mode 100644 src/common/speed_print.h create mode 100644 src/kem/frodo/frodokem1344shake/clean/CMakeLists.txt rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/api.h (100%) rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/common.h (100%) rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/kem.c (100%) rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/matrix_shake.c (100%) rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/noise.c (100%) rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/params.h (100%) rename {crypto_kem/frodo/frodokem1344shake/opt => src/kem/frodo/frodokem1344shake/clean}/util.c (100%) create mode 100644 src/kem/frodo/frodokem640shake/clean/CMakeLists.txt rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/api.h (100%) rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/common.h (100%) rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/kem.c (100%) rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/matrix_shake.c (100%) rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/noise.c (100%) rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/params.h (100%) rename {crypto_kem/frodo/frodokem640shake/opt => src/kem/frodo/frodokem640shake/clean}/util.c (100%) create mode 100644 src/kem/frodo/frodokem976shake/clean/CMakeLists.txt rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/api.h (100%) rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/common.h (100%) rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/kem.c (100%) rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/matrix_shake.c (100%) rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/noise.c (100%) rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/params.h (100%) rename {crypto_kem/frodo/frodokem976shake/opt => src/kem/frodo/frodokem976shake/clean}/util.c (100%) create mode 100644 src/kem/kyber/kyber1024/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/align.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/api.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/basemul.S (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/cbd.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/cbd.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/cdecl.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/consts.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/consts.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/fips202x4.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/fips202x4.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/fq.S (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/fq.inc (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/indcpa.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/indcpa.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/invntt.S (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/kem.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/kem.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/ntt.S (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/ntt.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/params.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/poly.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/poly.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/polyvec.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/polyvec.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/reduce.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/rejsample.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/rejsample.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/shuffle.S (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/shuffle.inc (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/symmetric-shake.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/symmetric.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/verify.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/avx2/verify.h (100%) create mode 100644 src/kem/kyber/kyber1024/clean/CMakeLists.txt rename {crypto_kem => src/kem}/kyber/kyber1024/clean/api.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/cbd.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/cbd.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/indcpa.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/indcpa.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/kem.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/kem.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/ntt.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/ntt.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/params.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/poly.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/poly.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/polyvec.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/polyvec.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/reduce.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/reduce.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/symmetric-shake.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/symmetric.h (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/verify.c (100%) rename {crypto_kem => src/kem}/kyber/kyber1024/clean/verify.h (100%) create mode 100644 src/kem/kyber/kyber512/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/kyber/kyber512/avx2/align.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/api.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/basemul.S (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/cbd.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/cbd.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/cdecl.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/consts.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/consts.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/fips202x4.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/fips202x4.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/fq.S (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/fq.inc (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/indcpa.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/indcpa.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/invntt.S (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/kem.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/kem.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/ntt.S (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/ntt.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/params.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/poly.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/poly.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/polyvec.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/polyvec.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/reduce.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/rejsample.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/rejsample.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/shuffle.S (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/shuffle.inc (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/symmetric-shake.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/symmetric.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/verify.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/avx2/verify.h (100%) create mode 100644 src/kem/kyber/kyber512/clean/CMakeLists.txt rename {crypto_kem => src/kem}/kyber/kyber512/clean/api.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/cbd.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/cbd.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/indcpa.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/indcpa.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/kem.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/kem.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/ntt.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/ntt.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/params.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/poly.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/poly.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/polyvec.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/polyvec.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/reduce.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/reduce.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/symmetric-shake.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/symmetric.h (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/verify.c (100%) rename {crypto_kem => src/kem}/kyber/kyber512/clean/verify.h (100%) create mode 100644 src/kem/kyber/kyber768/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/kyber/kyber768/avx2/align.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/api.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/basemul.S (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/cbd.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/cbd.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/cdecl.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/consts.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/consts.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/fips202x4.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/fips202x4.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/fq.S (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/fq.inc (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/indcpa.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/indcpa.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/invntt.S (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/kem.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/kem.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/ntt.S (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/ntt.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/params.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/poly.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/poly.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/polyvec.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/polyvec.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/reduce.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/rejsample.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/rejsample.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/shuffle.S (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/shuffle.inc (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/symmetric-shake.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/symmetric.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/verify.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/avx2/verify.h (100%) create mode 100644 src/kem/kyber/kyber768/clean/CMakeLists.txt rename {crypto_kem => src/kem}/kyber/kyber768/clean/api.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/cbd.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/cbd.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/indcpa.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/indcpa.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/kem.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/kem.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/ntt.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/ntt.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/params.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/poly.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/poly.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/polyvec.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/polyvec.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/reduce.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/reduce.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/symmetric-shake.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/symmetric.h (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/verify.c (100%) rename {crypto_kem => src/kem}/kyber/kyber768/clean/verify.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/powers.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/scalars.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/transpose_64x64_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec_mul_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/powers.inc (100%) rename {crypto_kem/mceliece/mceliece348864/sse => src/kem/mceliece/mceliece348864f/avx}/scalars.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/transpose_64x64_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec_mul_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece348864f/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece460896f/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/powers.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/powers.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6688128f/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece6960119f/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/powers.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128/clean/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/consts.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/consts.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/fft.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/fft.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/fft_tr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/fft_tr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/int32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/int32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/powers.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/scalars_2x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/scalars_4x.inc (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/syndrome_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/transpose_64x128_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/transpose_64x256_sp_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/uint32_sort.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/uint32_sort.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/update_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/util.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec128.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec128.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec128_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec256.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec256.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec256_ama_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec256_maa_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec256_mul_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/avx/vec_reduce_asm.S (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/aes256ctr.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/aes256ctr.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/api.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/benes.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/benes.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/bm.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/bm.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/controlbits.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/controlbits.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/crypto_hash.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/decrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/decrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/encrypt.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/encrypt.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/gf.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/gf.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/operations.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/params.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/pk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/pk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/root.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/root.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/sk_gen.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/sk_gen.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/synd.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/synd.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/transpose.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/transpose.h (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/util.c (100%) rename {crypto_kem => src/kem}/mceliece/mceliece8192128f/clean/util.h (100%) create mode 100644 src/kem/ntru/ntruhps2048509/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_mod_3_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_mod_q_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_r2_inv.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_r2_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_rq_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_rq_to_s3.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/sample_iid.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_126_509_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_15_509_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_1_509_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_252_509_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_30_509_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_3_509_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_63_509_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/square_6_509_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/avx2/vec32_sample_iid.s (100%) create mode 100644 src/kem/ntru/ntruhps2048509/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly_mod.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly_rq_mul.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048509/clean/sample_iid.c (100%) create mode 100644 src/kem/ntru/ntruhps2048677/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_mod_3_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_mod_q_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_r2_inv.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_r2_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_rq_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_rq_to_s3.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/sample_iid.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_10_677_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_168_677_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_1_677_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_21_677_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_2_677_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_336_677_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_3_677_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_42_677_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_5_677_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/square_84_677_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/avx2/vec32_sample_iid.s (100%) create mode 100644 src/kem/ntru/ntruhps2048677/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly_mod.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly_rq_mul.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps2048677/clean/sample_iid.c (100%) create mode 100644 src/kem/ntru/ntruhps4096821/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_mod_3_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_mod_q_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_r2_inv.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_r2_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_rq_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_rq_to_s3.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/sample_iid.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_102_821_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_12_821_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_1_821_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_204_821_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_24_821_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_3_821_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_408_821_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_51_821_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/square_6_821_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/avx2/vec32_sample_iid.s (100%) create mode 100644 src/kem/ntru/ntruhps4096821/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly_mod.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly_rq_mul.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhps4096821/clean/sample_iid.c (100%) create mode 100644 src/kem/ntru/ntruhrss701/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_lift.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_mod_3_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_mod_q_Phi_n.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_r2_inv.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_r2_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_rq_mul.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_rq_to_s3.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/sample_iid.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_12_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_15_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_168_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_1_701_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_27_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_336_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_3_701_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_42_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_6_701_patience.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/square_84_701_shufbytes.s (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/avx2/vec32_sample_iid.s (100%) create mode 100644 src/kem/ntru/ntruhrss701/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/cmov.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/cmov.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/owcpa.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/owcpa.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/pack3.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/packq.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/params.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly_lift.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly_mod.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly_r2_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly_rq_mul.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/poly_s3_inv.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/sample.c (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/sample.h (100%) rename {crypto_kem => src/kem}/ntru/ntruhrss701/clean/sample_iid.c (100%) create mode 100644 src/kem/ntru_prime/ntrulpr653/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/avx2/params.h (100%) create mode 100644 src/kem/ntru_prime/ntrulpr653/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_verify_1025.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/crypto_verify_1025.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr653/clean/params.h (100%) create mode 100644 src/kem/ntru_prime/ntrulpr761/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/avx2/params.h (100%) create mode 100644 src/kem/ntru_prime/ntrulpr761/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_verify_1167.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/crypto_verify_1167.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr761/clean/params.h (100%) create mode 100644 src/kem/ntru_prime/ntrulpr857/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/api.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/kem.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/avx2/params.h (100%) create mode 100644 src/kem/ntru_prime/ntrulpr857/clean/CMakeLists.txt rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/api.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_sort_int32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_sort_int32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_verify_1312.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/crypto_verify_1312.h (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/kem.c (100%) rename {crypto_kem => src/kem}/ntru_prime/ntrulpr857/clean/params.h (100%) create mode 100644 src/kem/saber/firesaber/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/saber/firesaber/avx2/SABER_indcpa.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/SABER_indcpa.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/SABER_params.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/api.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/cbd.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/cbd.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/kem.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/pack_unpack.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/pack_unpack.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/poly.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/poly.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/poly_mul.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/verify.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/avx2/verify.h (100%) create mode 100644 src/kem/saber/firesaber/clean/CMakeLists.txt rename {crypto_kem => src/kem}/saber/firesaber/clean/SABER_indcpa.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/SABER_indcpa.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/SABER_params.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/api.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/cbd.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/cbd.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/kem.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/pack_unpack.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/pack_unpack.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/poly.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/poly.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/poly_mul.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/poly_mul.h (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/verify.c (100%) rename {crypto_kem => src/kem}/saber/firesaber/clean/verify.h (100%) create mode 100644 src/kem/saber/lightsaber/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/saber/lightsaber/avx2/SABER_indcpa.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/SABER_indcpa.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/SABER_params.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/api.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/cbd.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/cbd.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/kem.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/pack_unpack.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/pack_unpack.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/poly.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/poly.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/poly_mul.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/verify.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/avx2/verify.h (100%) create mode 100644 src/kem/saber/lightsaber/clean/CMakeLists.txt rename {crypto_kem => src/kem}/saber/lightsaber/clean/SABER_indcpa.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/SABER_indcpa.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/SABER_params.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/api.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/cbd.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/cbd.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/kem.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/pack_unpack.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/pack_unpack.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/poly.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/poly.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/poly_mul.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/poly_mul.h (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/verify.c (100%) rename {crypto_kem => src/kem}/saber/lightsaber/clean/verify.h (100%) create mode 100644 src/kem/saber/saber/avx2/CMakeLists.txt rename {crypto_kem => src/kem}/saber/saber/avx2/SABER_indcpa.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/SABER_indcpa.h (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/SABER_params.h (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/api.h (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/cbd.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/cbd.h (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/kem.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/pack_unpack.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/pack_unpack.h (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/poly.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/poly.h (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/poly_mul.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/verify.c (100%) rename {crypto_kem => src/kem}/saber/saber/avx2/verify.h (100%) create mode 100644 src/kem/saber/saber/clean/CMakeLists.txt rename {crypto_kem => src/kem}/saber/saber/clean/SABER_indcpa.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/SABER_indcpa.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/SABER_params.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/api.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/cbd.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/cbd.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/kem.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/pack_unpack.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/pack_unpack.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/poly.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/poly.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/poly_mul.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/poly_mul.h (100%) rename {crypto_kem => src/kem}/saber/saber/clean/verify.c (100%) rename {crypto_kem => src/kem}/saber/saber/clean/verify.h (100%) create mode 100644 src/sign/dilithium/dilithium2/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/align.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/api.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/cdecl.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/consts.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/consts.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/f1600x4.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/invntt.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/ntt.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/ntt.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/packing.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/packing.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/params.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/pointwise.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/poly.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/poly.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/polyvec.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/polyvec.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/rejsample.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/rejsample.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/rounding.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/rounding.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/shuffle.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/shuffle.inc (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/sign.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/sign.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/symmetric-shake.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/avx2/symmetric.h (100%) create mode 100644 src/sign/dilithium/dilithium2/clean/CMakeLists.txt rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/api.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/ntt.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/ntt.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/packing.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/packing.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/params.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/poly.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/poly.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/polyvec.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/polyvec.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/reduce.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/reduce.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/rounding.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/rounding.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/sign.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/sign.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/symmetric-shake.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium2/clean/symmetric.h (100%) create mode 100644 src/sign/dilithium/dilithium3/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/align.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/api.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/cdecl.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/consts.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/consts.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/f1600x4.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/invntt.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/ntt.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/ntt.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/packing.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/packing.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/params.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/pointwise.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/poly.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/poly.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/polyvec.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/polyvec.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/rejsample.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/rejsample.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/rounding.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/rounding.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/shuffle.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/shuffle.inc (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/sign.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/sign.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/symmetric-shake.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/avx2/symmetric.h (100%) create mode 100644 src/sign/dilithium/dilithium3/clean/CMakeLists.txt rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/api.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/ntt.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/ntt.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/packing.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/packing.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/params.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/poly.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/poly.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/polyvec.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/polyvec.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/reduce.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/reduce.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/rounding.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/rounding.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/sign.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/sign.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/symmetric-shake.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium3/clean/symmetric.h (100%) create mode 100644 src/sign/dilithium/dilithium5/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/align.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/api.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/cdecl.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/consts.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/consts.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/f1600x4.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/invntt.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/ntt.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/ntt.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/packing.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/packing.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/params.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/pointwise.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/poly.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/poly.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/polyvec.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/polyvec.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/rejsample.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/rejsample.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/rounding.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/rounding.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/shuffle.S (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/shuffle.inc (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/sign.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/sign.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/symmetric-shake.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/avx2/symmetric.h (100%) create mode 100644 src/sign/dilithium/dilithium5/clean/CMakeLists.txt rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/api.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/ntt.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/ntt.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/packing.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/packing.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/params.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/poly.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/poly.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/polyvec.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/polyvec.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/reduce.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/reduce.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/rounding.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/rounding.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/sign.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/sign.h (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/symmetric-shake.c (100%) rename {crypto_sign => src/sign}/dilithium/dilithium5/clean/symmetric.h (100%) create mode 100644 src/sign/dilithium/sampling.c create mode 100644 src/sign/dilithium/sampling.h create mode 100644 src/sign/falcon/falcon-1024/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/api.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/codec.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/common.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/fft.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/fpr.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/fpr.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/inner.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/keygen.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/pqclean.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/rng.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/sign.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/avx2/vrfy.c (100%) create mode 100644 src/sign/falcon/falcon-1024/clean/CMakeLists.txt rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/api.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/codec.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/common.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/fft.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/fpr.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/fpr.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/inner.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/keygen.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/pqclean.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/rng.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/sign.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-1024/clean/vrfy.c (100%) create mode 100644 src/sign/falcon/falcon-512/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/api.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/codec.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/common.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/fft.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/fpr.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/fpr.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/inner.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/keygen.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/pqclean.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/rng.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/sign.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/avx2/vrfy.c (100%) create mode 100644 src/sign/falcon/falcon-512/clean/CMakeLists.txt rename {crypto_sign => src/sign}/falcon/falcon-512/clean/api.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/codec.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/common.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/fft.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/fpr.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/fpr.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/inner.h (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/keygen.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/pqclean.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/rng.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/sign.c (100%) rename {crypto_sign => src/sign}/falcon/falcon-512/clean/vrfy.c (100%) create mode 100644 src/sign/rainbow/rainbowI-classic/clean/CMakeLists.txt rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/api.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/blas.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/blas.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/blas_comm.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/blas_comm.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/gf.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/gf.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/parallel_matrix_op.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/parallel_matrix_op.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow_blas.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow_config.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow_keypair.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow_keypair.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/sign.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/utils_hash.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/utils_hash.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/utils_prng.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowI-classic/clean/utils_prng.h (100%) create mode 100644 src/sign/rainbow/rainbowIII-classic/clean/CMakeLists.txt rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/api.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/blas.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/blas.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/blas_comm.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/blas_comm.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/gf.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/gf.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/parallel_matrix_op.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/parallel_matrix_op.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow_blas.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow_config.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow_keypair.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow_keypair.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/sign.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/utils_hash.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/utils_hash.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/utils_prng.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowIII-classic/clean/utils_prng.h (100%) create mode 100644 src/sign/rainbow/rainbowV-classic/clean/CMakeLists.txt rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/api.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/blas.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/blas.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/blas_comm.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/blas_comm.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/gf.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/gf.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/parallel_matrix_op.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/parallel_matrix_op.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow_blas.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow_config.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow_keypair.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow_keypair.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/sign.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/utils_hash.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/utils_hash.h (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/utils_prng.c (100%) rename {crypto_sign => src/sign}/rainbow/rainbowV-classic/clean/utils_prng.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128f-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robustx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128f-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128f-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simplex8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128f-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128f-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128s-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robustx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128s-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128s-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simplex8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-128s-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-128s-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192f-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robustx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192f-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192f-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simplex8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192f-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192f-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192s-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robustx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192s-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192s-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simplex8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-192s-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-192s-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256f-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robustx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256f-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256f-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simplex8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256f-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256f-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256s-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robustx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256s-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/thash_sha256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256s-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/hashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simplex8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/thashx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-sha256-256s-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/hash_sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/sha256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/sha256.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/thash_sha256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-sha256-256s-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128f-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robustx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128f-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128f-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simplex4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128f-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128f-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128s-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robustx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128s-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128s-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simplex4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-128s-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-128s-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192f-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robustx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192f-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192f-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simplex4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192f-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192f-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192s-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robustx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192s-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192s-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simplex4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-192s-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-192s-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256f-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robustx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256f-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256f-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simplex4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256f-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256f-simple/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256s-robust/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robustx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256s-robust/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/thash_shake256_robust.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-robust/clean/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256s-simple/avx2/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256x4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/hashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simplex4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/thashx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/avx2/wots.h (100%) create mode 100644 src/sign/sphincs/sphincs-shake256-256s-simple/clean/CMakeLists.txt rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/address.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/address.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/api.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/fors.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/fors.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/hash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/hash_shake256.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/hash_state.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/params.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/sign.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/thash.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/thash_shake256_simple.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/utils.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/utils.h (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/wots.c (100%) rename {crypto_sign => src/sign}/sphincs/sphincs-shake256-256s-simple/clean/wots.h (100%) rename test/{crypto_kem => kem}/functest.c (100%) rename test/{crypto_kem => kem}/nistkat.c (100%) rename test/{crypto_kem => kem}/printparams.c (100%) rename test/{crypto_kem => kem}/testvectors.c (100%) rename test/{crypto_sign => sign}/functest.c (100%) rename test/{crypto_sign => sign}/nistkat.c (100%) rename test/{crypto_sign => sign}/printparams.c (100%) rename test/{crypto_sign => sign}/testvectors.c (100%) diff --git a/.cmake/common.mk b/.cmake/common.mk new file mode 100644 index 00000000..beacaef1 --- /dev/null +++ b/.cmake/common.mk @@ -0,0 +1,54 @@ +# Common function for defining algorithm component +function(define_crypto_alg name namespace src inc test_src) + add_library( + pqclean_${name} + OBJECT + ${src} + ) + + target_include_directories( + pqclean_${name} PRIVATE + src/common + ${inc} + ) + + target_compile_definitions( + pqclean_${name} PRIVATE + -DPQCLEAN_NAMESPACE=${namespace} + ) + + add_library( + pqclean_test_${name} + OBJECT + ${test_src} + ) + + target_compile_definitions( + pqclean_test_${name} PRIVATE + -DPQCLEAN_NAMESPACE=${namespace} + ) + + target_include_directories( + pqclean_test_${name} PRIVATE + src/common + ${inc} + ) + + add_executable( + test_runner_${name} + ) + target_link_libraries( + test_runner_${name} + + common + pqclean_${name} + pqclean_test_${name} + ) +endfunction() + +function(define_kem_alg name namespace src inc) + define_crypto_alg(${name} ${namespace} "${src}" "${inc}" ${PROJECT_SOURCE_DIR}/test/kem/testvectors.c) +endfunction() +function(define_sig_alg name namespace src inc) + define_crypto_alg(${name} ${namespace} "${src}" "${inc}" ${PROJECT_SOURCE_DIR}/test/sign/testvectors.c) +endfunction() diff --git a/CMakeLists.txt b/CMakeLists.txt index cd8c321d..5a9c41a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,8 @@ if(CLANG) -Wmissing-variable-declarations") endif() +include(.cmake/common.mk) + # Control Debug/Release mode if(CMAKE_BUILD_TYPE_LOWER STREQUAL "debug") set(C_CXX_FLAGS "${C_CXX_FLAGS} -g3 -O0 -Wno-unused") @@ -75,6 +77,7 @@ endif() include_directories( inc + src/common/ src ) @@ -82,341 +85,125 @@ include_directories( set(CMAKE_C_FLAGS "${C_CXX_FLAGS} -D${ARCH}") set(CMAKE_CXX_FLAGS "${C_CXX_FLAGS} -D${ARCH}") -# Common function for defining algorithm component -function(define_crypto_alg name namespace src inc test_src) - add_library( - pqclean_${name} - OBJECT - ${src} - ) - - target_include_directories( - pqclean_${name} PRIVATE - common - ${inc} - ) - - target_compile_definitions( - pqclean_${name} PRIVATE - -DPQCLEAN_NAMESPACE=${namespace} - ) - - add_library( - pqclean_test_${name} - OBJECT - ${test_src} - ) - - target_compile_definitions( - pqclean_test_${name} PRIVATE - -DPQCLEAN_NAMESPACE=${namespace} - ) - - target_include_directories( - pqclean_test_${name} PRIVATE - common - ${inc} - ) - - add_executable( - test_runner_${name} - ) - target_link_libraries( - test_runner_${name} - - common - pqclean_${name} - pqclean_test_${name} - ) -endfunction() - -function(define_kem_alg name namespace src inc) - define_crypto_alg(${name} ${namespace} "${src}" "${inc}" test/crypto_kem/testvectors.c) -endfunction() -function(define_sig_alg name namespace src inc) - define_crypto_alg(${name} ${namespace} "${src}" "${inc}" test/crypto_sign/testvectors.c) -endfunction() - # Define sources of the components -set( - SRC_CLEAN_DILITHIUM2 - crypto_sign/dilithium/dilithium2/clean/ntt.c - crypto_sign/dilithium/dilithium2/clean/packing.c - crypto_sign/dilithium/dilithium2/clean/poly.c - crypto_sign/dilithium/dilithium2/clean/polyvec.c - crypto_sign/dilithium/dilithium2/clean/reduce.c - crypto_sign/dilithium/dilithium2/clean/rounding.c - crypto_sign/dilithium/dilithium2/clean/sign.c - crypto_sign/dilithium/dilithium2/clean/symmetric-shake.c -) -set( - INC_CLEAN_DILITHIUM2 - crypto_sign/dilithium/dilithium2/clean -) -define_sig_alg(dilithium2_clean - PQCLEAN_DILITHIUM2_CLEAN "${SRC_CLEAN_DILITHIUM2}" "${INC_CLEAN_DILITHIUM2}") - -set( - SRC_CLEAN_DILITHIUM3 - crypto_sign/dilithium/dilithium3/clean/ntt.c - crypto_sign/dilithium/dilithium3/clean/packing.c - crypto_sign/dilithium/dilithium3/clean/poly.c - crypto_sign/dilithium/dilithium3/clean/polyvec.c - crypto_sign/dilithium/dilithium3/clean/reduce.c - crypto_sign/dilithium/dilithium3/clean/rounding.c - crypto_sign/dilithium/dilithium3/clean/sign.c - crypto_sign/dilithium/dilithium3/clean/symmetric-shake.c -) - -set( - INC_CLEAN_DILITHIUM3 - crypto_sign/dilithium/dilithium3/clean -) -define_sig_alg(dilithium3_clean - PQCLEAN_DILITHIUM3_CLEAN "${SRC_CLEAN_DILITHIUM3}" "${INC_CLEAN_DILITHIUM3}") - -set( - SRC_CLEAN_DILITHIUM5 - crypto_sign/dilithium/dilithium5/clean/ntt.c - crypto_sign/dilithium/dilithium5/clean/packing.c - crypto_sign/dilithium/dilithium5/clean/poly.c - crypto_sign/dilithium/dilithium5/clean/polyvec.c - crypto_sign/dilithium/dilithium5/clean/reduce.c - crypto_sign/dilithium/dilithium5/clean/rounding.c - crypto_sign/dilithium/dilithium5/clean/sign.c - crypto_sign/dilithium/dilithium5/clean/symmetric-shake.c -) - -set( - INC_CLEAN_DILITHIUM5 - crypto_sign/dilithium/dilithium5/clean -) - -define_sig_alg(dilithium5_clean - PQCLEAN_DILITHIUM5_CLEAN "${SRC_CLEAN_DILITHIUM5}" "${INC_CLEAN_DILITHIUM5}") - -set( - SRC_CLEAN_KYBER512 - crypto_kem/kyber/kyber512/clean/cbd.c - crypto_kem/kyber/kyber512/clean/indcpa.c - crypto_kem/kyber/kyber512/clean/kem.c - crypto_kem/kyber/kyber512/clean/ntt.c - crypto_kem/kyber/kyber512/clean/poly.c - crypto_kem/kyber/kyber512/clean/polyvec.c - crypto_kem/kyber/kyber512/clean/reduce.c - crypto_kem/kyber/kyber512/clean/symmetric-shake.c - crypto_kem/kyber/kyber512/clean/verify.c -) -set( - INC_CLEAN_KYBER512 - crypto_kem/kyber/kyber512/clean -) -define_kem_alg(kyber512_clean - PQCLEAN_KYBER512_CLEAN "${SRC_CLEAN_KYBER512}" "${INC_CLEAN_KYBER512}") - -set( - SRC_CLEAN_KYBER768 - crypto_kem/kyber/kyber768/clean/cbd.c - crypto_kem/kyber/kyber768/clean/indcpa.c - crypto_kem/kyber/kyber768/clean/kem.c - crypto_kem/kyber/kyber768/clean/ntt.c - crypto_kem/kyber/kyber768/clean/poly.c - crypto_kem/kyber/kyber768/clean/polyvec.c - crypto_kem/kyber/kyber768/clean/reduce.c - crypto_kem/kyber/kyber768/clean/symmetric-shake.c - crypto_kem/kyber/kyber768/clean/verify.c -) -set( - INC_CLEAN_KYBER768 - crypto_kem/kyber/kyber768/clean -) -define_kem_alg(kyber768_clean - PQCLEAN_KYBER768_CLEAN "${SRC_CLEAN_KYBER768}" "${INC_CLEAN_KYBER768}") - -set( - SRC_CLEAN_KYBER1024 - crypto_kem/kyber/kyber1024/clean/cbd.c - crypto_kem/kyber/kyber1024/clean/indcpa.c - crypto_kem/kyber/kyber1024/clean/kem.c - crypto_kem/kyber/kyber1024/clean/ntt.c - crypto_kem/kyber/kyber1024/clean/poly.c - crypto_kem/kyber/kyber1024/clean/polyvec.c - crypto_kem/kyber/kyber1024/clean/reduce.c - crypto_kem/kyber/kyber1024/clean/symmetric-shake.c - crypto_kem/kyber/kyber1024/clean/verify.c -) -set( - INC_CLEAN_KYBER1024 - crypto_kem/kyber/kyber1024/clean -) -define_kem_alg(kyber1024_clean - PQCLEAN_KYBER1024_CLEAN "${SRC_CLEAN_KYBER1024}" "${INC_CLEAN_KYBER1024}") +add_subdirectory(src/sign/dilithium/dilithium2/clean) +add_subdirectory(src/sign/dilithium/dilithium3/clean) +add_subdirectory(src/sign/dilithium/dilithium5/clean) +add_subdirectory(src/sign/falcon/falcon-1024/clean) +add_subdirectory(src/sign/falcon/falcon-512/clean) +add_subdirectory(src/sign/rainbow/rainbowV-classic/clean) +add_subdirectory(src/sign/rainbow/rainbowI-classic/clean) +add_subdirectory(src/sign/rainbow/rainbowIII-classic/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192f-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256f-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192f-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128f-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256s-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128s-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128f-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192s-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128f-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128s-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256s-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192s-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192s-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192s-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192f-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256s-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128s-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256f-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256f-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256f-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256s-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128s-robust/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128f-simple/clean) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192f-robust/clean) # AVX2 targets if(${ARCH} STREQUAL "ARCH_x86_64") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native") +add_subdirectory(src/sign/falcon/falcon-512/avx2) +add_subdirectory(src/sign/falcon/falcon-1024/avx2) +add_subdirectory(src/sign/dilithium/dilithium2/avx2) +add_subdirectory(src/sign/dilithium/dilithium3/avx2) +add_subdirectory(src/sign/dilithium/dilithium5/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128s-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128f-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128s-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-128f-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192s-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192f-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192s-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-192f-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256f-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256f-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256s-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-shake256-256s-robust/avx2) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=haswell") - -set( - SRC_AVX2_DILITHIUM2 - crypto_sign/dilithium/dilithium2/avx2/consts.c - crypto_sign/dilithium/dilithium2/avx2/f1600x4.S - crypto_sign/dilithium/dilithium2/avx2/fips202x4.c - crypto_sign/dilithium/dilithium2/avx2/invntt.S - crypto_sign/dilithium/dilithium2/avx2/ntt.S - crypto_sign/dilithium/dilithium2/avx2/packing.c - crypto_sign/dilithium/dilithium2/avx2/pointwise.S - crypto_sign/dilithium/dilithium2/avx2/poly.c - crypto_sign/dilithium/dilithium2/avx2/polyvec.c - crypto_sign/dilithium/dilithium2/avx2/rejsample.c - crypto_sign/dilithium/dilithium2/avx2/rounding.c - crypto_sign/dilithium/dilithium2/avx2/shuffle.S - crypto_sign/dilithium/dilithium2/avx2/sign.c - crypto_sign/dilithium/dilithium2/avx2/symmetric-shake.c) -set( - INC_AVX2_DILITHIUM2 - crypto_sign/dilithium/dilithium2/avx2 -) -define_sig_alg(dilithium2_avx2 - PQCLEAN_DILITHIUM2_AVX2 "${SRC_AVX2_DILITHIUM2}" "${INC_AVX2_DILITHIUM2}") - -set( - SRC_AVX2_DILITHIUM3 - crypto_sign/dilithium/dilithium3/avx2/consts.c - crypto_sign/dilithium/dilithium3/avx2/f1600x4.S - crypto_sign/dilithium/dilithium3/avx2/fips202x4.c - crypto_sign/dilithium/dilithium3/avx2/invntt.S - crypto_sign/dilithium/dilithium3/avx2/ntt.S - crypto_sign/dilithium/dilithium3/avx2/packing.c - crypto_sign/dilithium/dilithium3/avx2/pointwise.S - crypto_sign/dilithium/dilithium3/avx2/poly.c - crypto_sign/dilithium/dilithium3/avx2/polyvec.c - crypto_sign/dilithium/dilithium3/avx2/rejsample.c - crypto_sign/dilithium/dilithium3/avx2/rounding.c - crypto_sign/dilithium/dilithium3/avx2/shuffle.S - crypto_sign/dilithium/dilithium3/avx2/sign.c - crypto_sign/dilithium/dilithium3/avx2/symmetric-shake.c) -set( - INC_AVX2_DILITHIUM3 - crypto_sign/dilithium/dilithium3/avx2 -) -define_sig_alg(dilithium3_avx2 - PQCLEAN_DILITHIUM3_AVX2 "${SRC_AVX2_DILITHIUM3}" "${INC_AVX2_DILITHIUM3}") - -set( - SRC_AVX2_DILITHIUM5 - crypto_sign/dilithium/dilithium5/avx2/consts.c - crypto_sign/dilithium/dilithium5/avx2/f1600x4.S - crypto_sign/dilithium/dilithium5/avx2/fips202x4.c - crypto_sign/dilithium/dilithium5/avx2/invntt.S - crypto_sign/dilithium/dilithium5/avx2/ntt.S - crypto_sign/dilithium/dilithium5/avx2/packing.c - crypto_sign/dilithium/dilithium5/avx2/pointwise.S - crypto_sign/dilithium/dilithium5/avx2/poly.c - crypto_sign/dilithium/dilithium5/avx2/polyvec.c - crypto_sign/dilithium/dilithium5/avx2/rejsample.c - crypto_sign/dilithium/dilithium5/avx2/rounding.c - crypto_sign/dilithium/dilithium5/avx2/shuffle.S - crypto_sign/dilithium/dilithium5/avx2/sign.c - crypto_sign/dilithium/dilithium5/avx2/symmetric-shake.c) -set( - INC_AVX2_DILITHIUM5 - crypto_sign/dilithium/dilithium5/avx2 -) -define_sig_alg(dilithium5_avx2 - PQCLEAN_DILITHIUM5_AVX2 "${SRC_AVX2_DILITHIUM5}" "${INC_AVX2_DILITHIUM5}") - -set( - SRC_AVX2_KYBER512 - crypto_kem/kyber/kyber512/avx2/cbd.c - crypto_kem/kyber/kyber512/avx2/consts.c - crypto_kem/kyber/kyber512/avx2/fips202x4.c - crypto_kem/kyber/kyber512/avx2/indcpa.c - crypto_kem/kyber/kyber512/avx2/kem.c - crypto_kem/kyber/kyber512/avx2/poly.c - crypto_kem/kyber/kyber512/avx2/polyvec.c - crypto_kem/kyber/kyber512/avx2/rejsample.c - crypto_kem/kyber/kyber512/avx2/symmetric-shake.c - crypto_kem/kyber/kyber512/avx2/verify.c - crypto_kem/kyber/kyber512/avx2/basemul.S - crypto_kem/kyber/kyber512/avx2/fq.S - crypto_kem/kyber/kyber512/avx2/invntt.S - crypto_kem/kyber/kyber512/avx2/ntt.S - crypto_kem/kyber/kyber512/avx2/shuffle.S -) -set( - INC_AVX2_KYBER512 - crypto_kem/kyber/kyber512/avx2 -) -define_kem_alg(kyber512_avx2 - PQCLEAN_KYBER512_AVX2 "${SRC_AVX2_KYBER512}" "${INC_AVX2_KYBER512}") - -set( - SRC_AVX2_KYBER768 - crypto_kem/kyber/kyber768/avx2/cbd.c - crypto_kem/kyber/kyber768/avx2/consts.c - crypto_kem/kyber/kyber768/avx2/fips202x4.c - crypto_kem/kyber/kyber768/avx2/indcpa.c - crypto_kem/kyber/kyber768/avx2/kem.c - crypto_kem/kyber/kyber768/avx2/poly.c - crypto_kem/kyber/kyber768/avx2/polyvec.c - crypto_kem/kyber/kyber768/avx2/rejsample.c - crypto_kem/kyber/kyber768/avx2/symmetric-shake.c - crypto_kem/kyber/kyber768/avx2/verify.c - crypto_kem/kyber/kyber768/avx2/basemul.S - crypto_kem/kyber/kyber768/avx2/fq.S - crypto_kem/kyber/kyber768/avx2/invntt.S - crypto_kem/kyber/kyber768/avx2/ntt.S - crypto_kem/kyber/kyber768/avx2/shuffle.S -) -set( - INC_AVX2_KYBER768 - crypto_kem/kyber/kyber768/avx2 -) -define_kem_alg(kyber768_avx2 - PQCLEAN_KYBER768_AVX2 "${SRC_AVX2_KYBER768}" "${INC_AVX2_KYBER768}") - -set( - SRC_AVX2_KYBER1024 - crypto_kem/kyber/kyber1024/avx2/cbd.c - crypto_kem/kyber/kyber1024/avx2/consts.c - crypto_kem/kyber/kyber1024/avx2/fips202x4.c - crypto_kem/kyber/kyber1024/avx2/indcpa.c - crypto_kem/kyber/kyber1024/avx2/kem.c - crypto_kem/kyber/kyber1024/avx2/poly.c - crypto_kem/kyber/kyber1024/avx2/polyvec.c - crypto_kem/kyber/kyber1024/avx2/rejsample.c - crypto_kem/kyber/kyber1024/avx2/symmetric-shake.c - crypto_kem/kyber/kyber1024/avx2/verify.c - crypto_kem/kyber/kyber1024/avx2/basemul.S - crypto_kem/kyber/kyber1024/avx2/fq.S - crypto_kem/kyber/kyber1024/avx2/invntt.S - crypto_kem/kyber/kyber1024/avx2/ntt.S - crypto_kem/kyber/kyber1024/avx2/shuffle.S -) -set( - INC_AVX2_KYBER1024 - crypto_kem/kyber/kyber1024/avx2 -) -define_kem_alg(kyber1024_avx2 - PQCLEAN_KYBER1024_AVX2 "${SRC_AVX2_KYBER1024}" "${INC_AVX2_KYBER1024}") +add_subdirectory(src/sign/sphincs/sphincs-sha256-128f-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128s-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128s-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-128f-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192s-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192f-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192s-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-192f-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256s-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256f-robust/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256f-simple/avx2) +add_subdirectory(src/sign/sphincs/sphincs-sha256-256s-robust/avx2) endif() # The rest of the library set(SRC_COMMON_GENERIC - common/fips202.c - common/sp800-185.c - common/randombytes.c + src/common/aes.c + src/common/fips202.c + src/common/sp800-185.c + src/common/randombytes.c + src/common/sha2.c ) if(${ARCH} STREQUAL "ARCH_x86_64") set(SRC_COMMON_AVX2 - common/keccak4x/KeccakP-1600-times4-SIMD256.c + src/common/keccak4x/KeccakP-1600-times4-SIMD256.c ) + +# KEM - AVX2 +add_subdirectory(src/kem/kyber/kyber512/avx2) +add_subdirectory(src/kem/kyber/kyber768/avx2) +add_subdirectory(src/kem/kyber/kyber1024/avx2) +add_subdirectory(src/kem/saber/lightsaber/avx2) +add_subdirectory(src/kem/saber/firesaber/avx2) +add_subdirectory(src/kem/saber/saber/avx2) +add_subdirectory(src/kem/ntru/ntruhps4096821/avx2) +add_subdirectory(src/kem/ntru/ntruhps2048509/avx2) +add_subdirectory(src/kem/ntru/ntruhrss701/avx2) +add_subdirectory(src/kem/ntru/ntruhps2048677/avx2) +add_subdirectory(src/kem/ntru_prime/ntrulpr761/avx2) +add_subdirectory(src/kem/ntru_prime/ntrulpr653/avx2) +add_subdirectory(src/kem/ntru_prime/ntrulpr857/avx2) endif() +# KEM - clean +add_subdirectory(src/kem/kyber/kyber512/clean) +add_subdirectory(src/kem/kyber/kyber768/clean) +add_subdirectory(src/kem/kyber/kyber1024/clean) +add_subdirectory(src/kem/saber/lightsaber/clean) +add_subdirectory(src/kem/saber/firesaber/clean) +add_subdirectory(src/kem/saber/saber/clean) +add_subdirectory(src/kem/frodo/frodokem640shake/clean) +add_subdirectory(src/kem/frodo/frodokem976shake/clean) +add_subdirectory(src/kem/frodo/frodokem1344shake/clean) +add_subdirectory(src/kem/ntru/ntruhps4096821/clean) +add_subdirectory(src/kem/ntru/ntruhps2048509/clean) +add_subdirectory(src/kem/ntru/ntruhrss701/clean) +add_subdirectory(src/kem/ntru/ntruhps2048677/clean) +add_subdirectory(src/kem/ntru_prime/ntrulpr761/clean) +add_subdirectory(src/kem/ntru_prime/ntrulpr653/clean) +add_subdirectory(src/kem/ntru_prime/ntrulpr857/clean) + add_library( common OBJECT @@ -449,16 +236,3 @@ target_link_libraries( pqclean_dilithium3_clean pqclean_dilithium5_clean ) - -# TODO: this requires changes to testvectors.c -# add_executable( -# test -# ) -# -# target_link_libraries( -# test -# pqclean_s -# pqclean_test_dilithium2_clean -# pqclean_test_dilithium3_clean -# pqclean_test_dilithium5_clean -# ) diff --git a/README.md b/README.md index 6c3247d9..76868318 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,8 @@ -# PQClean +# PQ Crypto Catalog -_[See the build status for each component here](.github/workflows/BADGES.md)_ +This is a repository of post-quantum schemes coppied from the submission to the NIST Post-Quantum Standarization. The sources were cloned from the PQClean project to form new library. The goal of the library is mainly experimentation. -**PQClean**, in short, is an effort to collect **clean** implementations of the post-quantum -schemes that are in the -[NIST post-quantum project](https://csrc.nist.gov/projects/post-quantum-cryptography). -The goal of PQClean is to provide *standalone implementations* that - -* can easily be integrated into libraries such as [liboqs](https://openquantumsafe.org/#liboqs). -* can efficiently upstream into higher-level protocol integration efforts such as [Open Quantum Safe](https://openquantumsafe.org/#integrations); -* can easily be integrated into benchmarking frameworks such as [SUPERCOP](https://bench.cr.yp.to/supercop.html); -* can easily be integrated into frameworks targeting embedded platforms such as [pqm4](https://github.com/mupq/pqm4); -* are suitable starting points for architecture-specific optimized implementations; -* are suitable starting points for evaluation of implementation security; and -* are suitable targets for formal verification. - -What PQClean is **not** aiming for is - -* a build system producing an integrated library of all schemes; -* including benchmarking of implementations; and -* including integration into higher-level applications or protocols. - -As a first main target, we are collecting C implementations that fulfill the requirements -listed below. We also accept optimised implementations, but still requiring high-quality, tested code. - -Please also review our [guidelines for contributors](CONTRIBUTING.md) if you are interested in adding a scheme to PQClean. - -## Requirements on C implementations that are automatically checked - -_The checking of items on this list is still being developed. Checked items should be working._ - -* [x] Code is valid C99 -* [x] Passes functional tests -* [x] API functions do not write outside provided buffers -* [x] `api.h` cannot include external files -* [x] Compiles with `-Wall -Wextra -Wpedantic -Werror -Wmissing-prototypes` with `gcc` and `clang` -* [x] `#if`/`#ifdef`s only for header encapsulation -* [x] Consistent test vectors across runs -* [x] Consistent test vectors on big-endian and little-endian machines -* [x] Consistent test vectors on 32-bit and 64-bit machines -* [x] `const` arguments are labeled as `const` -* [x] No errors/warnings reported by valgrind -* [x] No errors/warnings reported by address sanitizer -* [x] Only dependencies: `fips202.c`, `sha2.c`, `aes.c`, `randombytes.c` -* [x] API functions return `0` on success -* [x] No dynamic memory allocations (including variable-length arrays) -* [ ] No branching on secret data (dynamically checked using valgrind) -* [ ] No access to secret memory locations (dynamically checked using valgrind) -* [x] Separate subdirectories (without symlinks) for each parameter set of each scheme -* [x] Builds under Linux, MacOS, and Windows - * [x] Linux - * [x] MacOS - * [x] Windows -* [x] Makefile-based build for each separate scheme -* [x] Makefile-based build for Windows (`nmake`) -* [x] All exported symbols are namespaced with `PQCLEAN_SCHEMENAME_` -* [x] Each implementation comes with a `LICENSE` file (see below) -* [x] Each scheme comes with a `META.yml` file giving details about version of the algorithm, designers - * [x] Each individual implementation is specified in `META.yml`. - - -## Requirements on C implementations that are manually checked - -* Minimalist Makefiles -* No stringification macros -* Output-parameter pointers in functions are on the left -* All exported symbols are namespaced in place -* Integer types are of fixed size where relevant, using `stdint.h` types (optional, recommended) -* Integers used for indexing memory are of size `size_t` (optional, recommended) -* Variable declarations at the beginning (except in `for (size_t i=...`) (optional, recommended) - -## Schemes currently in PQClean - -For the following schemes we have implementations of one or more of their parameter sets. -For all of these schemes we have clean C code, but for some we also have optimised code. +## Schemes ### Key Encapsulation Mechanisms @@ -120,61 +49,3 @@ int PQCLEAN_SCHEME_IMPL_crypto_sign_verify( const uint8_t *m, size_t mlen, const uint8_t *pk); ``` - -## Building PQClean - -As noted above, PQClean is **not** meant to be built as a single library: it is a collection of source code that can be easily integrated into other libraries. The PQClean repository includes various test programs which do build various files, but you should not use the resulting binaries. - -List of required dependencies: ``gcc or clang, make, python3, python-yaml library, valgrind, astyle (>= 3.0)``. - -## Using source code from PQClean in your own project - -Each implementation directory in PQClean (e.g., crypto\_kem/kyber768\clean) can be extracted for use in your own project. You will need to: - -1. Copy the source code from the implementation's directory into your project. -2. Add the files to your project's build system. -3. Provide instantiations of any of the common cryptographic algorithms used by the implementation. This likely includes `common/randombytes.h` (a cryptographic random number generator), and possibly `common/sha2.h` (the SHA-2 hash function family), `common/aes.h` (AES implementations), `common/fips202.h` (the SHA-3 hash function family) and `common/sp800-185.h` (the cSHAKE family). - -Regarding #2, adding the files to your project's build system, each implementation in PQClean is accompanied by example two makefiles that show how one could build the files for that implementation: - -- The file `Makefile` which can be used with GNU Make, BSD Make, and possibly others. -- The file `Makefile.Microsoft_nmake` which can be used with Visual Studio's nmake. - -## Projects integrating PQClean-distributed source code - -The following projects consume implementations from PQClean and provide their own wrappers around the implementations. -Their integration strategies may serve as examples for your own projects. - -- **[pqcrypto crate](https://github.com/rustpq/pqcrypto)**: Rust integration that automatically generates wrappers from PQClean source code. -- **[mupq](https://github.com/mupq/)**: Runs the implementations from PQClean as reference implementations to compare with microcontroller-optimized code. -- **[Open Quantum Safe](https://github.com/open-quantum-safe/)**: The Open Quantum Safe project integrates implementations from PQClean into their [liboqs](https://github.com/open-quantum-safe/liboqs/) C library, which then exposes them via [C++](https://github.com/open-quantum-safe/liboqs-cpp), [C# / .NET](https://github.com/open-quantum-safe/liboqs-dotnet), and [Python](https://github.com/open-quantum-safe/liboqs-python) wrappers, as well as to forks of [OpenSSL](https://github.com/open-quantum-safe/openssl) and [OpenSSH](https://github.com/open-quantum-safe/openssh-portable). - -## License - -Each subdirectory containing implementations contains a `LICENSE` file stating under what license that specific implementation is released. -The files in `common` contain licensing information at the top of the file (and are currently either public domain or MIT). -All other code in this repository is released under the conditions of [CC0](http://creativecommons.org/publicdomain/zero/1.0/). - -## Running tests locally - -See https://github.com/PQClean/PQClean/wiki/Test-framework for details about the PQClean test framework. - -While we run extensive automatic testing on Github Actions ((emulated) Linux builds, MacOS and Windows builds) and [Travis CI][travis-pqc] (Aarch64 builds), and most tests can also be run locally. -To do this, make sure the following is installed: - -* Python 3.6+ -* `pytest` for python 3. - -We also recommend installing ``pytest-xdist`` to allow running tests in parallel. - -You will also need to make sure the submodules are initialized by running: - -``` -git submodule update --init -``` - -Run the Python-based tests by going into the `test` directory and running `pytest -v` or (recommended) `pytest -n=auto` for parallel testing. - -You may also run `python3 ` where `` is any of the files starting with `test_` in the `test/` folder. - -[travis-pqc]: https://travis-ci.com/PQClean/PQClean/ diff --git a/common/keccak4x/Makefile.Microsoft_nmake b/common/keccak4x/Makefile.Microsoft_nmake deleted file mode 100644 index ebe3bf30..00000000 --- a/common/keccak4x/Makefile.Microsoft_nmake +++ /dev/null @@ -1,8 +0,0 @@ -KeccakP-1600-times4-SIMD256.obj: KeccakP-1600-times4-SIMD256.c \ - align.h brg_endian.h KeccakP-1600-times4-SnP.h \ - KeccakP-1600-unrolling.macros SIMD256-config.h - $(CC) /nologo /c /O2 /W4 /WX /arch:AVX2 KeccakP-1600-times4-SIMD256.c - -.PHONY: clean -clean: - $(RM) KeccakP-1600-times4-SIMD256.obj diff --git a/crypto_kem/frodo/frodokem1344shake/clean/LICENSE b/crypto_kem/frodo/frodokem1344shake/clean/LICENSE deleted file mode 100644 index 5cf7c8db..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/crypto_kem/frodo/frodokem1344shake/clean/Makefile.Microsoft_nmake b/crypto_kem/frodo/frodokem1344shake/clean/Makefile.Microsoft_nmake deleted file mode 100644 index ac98c531..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfrodokem1344shake_clean.lib -OBJECTS=kem.obj matrix_shake.obj noise.obj util.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/frodo/frodokem1344shake/clean/api.h b/crypto_kem/frodo/frodokem1344shake/clean/api.h deleted file mode 100644 index b56f4118..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/api.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef PQCLEAN_FRODOKEM1344SHAKE_CLEAN_API_H -#define PQCLEAN_FRODOKEM1344SHAKE_CLEAN_API_H - -#include -#include - -#define PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_SECRETKEYBYTES 43088 // sizeof(s) + CRYPTO_PUBLICKEYBYTES + 2*PARAMS_N*PARAMS_NBAR + BYTES_PKHASH -#define PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_PUBLICKEYBYTES 21520 // sizeof(seed_A) + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 -#define PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_BYTES 32 -#define PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_CIPHERTEXTBYTES 21632 // (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 + (PARAMS_LOGQ*PARAMS_NBAR*PARAMS_NBAR)/8 - -#define PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_ALGNAME "FrodoKEM-1344-SHAKE" - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_crypto_kem_keypair(uint8_t *pk, uint8_t *sk); - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk); - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk); - -#endif diff --git a/crypto_kem/frodo/frodokem1344shake/clean/common.h b/crypto_kem/frodo/frodokem1344shake/clean/common.h deleted file mode 100644 index 2daf0da3..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/common.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef COMMON_H -#define COMMON_H - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A); -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(uint16_t *s, size_t n); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_bs(uint16_t *out, const uint16_t *b, const uint16_t *s); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sb_plus_e(uint16_t *out, const uint16_t *b, const uint16_t *s, const uint16_t *e); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_add(uint16_t *out, const uint16_t *a, const uint16_t *b); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sub(uint16_t *out, const uint16_t *a, const uint16_t *b); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_encode(uint16_t *out, const uint16_t *in); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_decode(uint16_t *out, const uint16_t *in); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_pack(uint8_t *out, size_t outlen, const uint16_t *in, size_t inlen, uint8_t lsb); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_unpack(uint16_t *out, size_t outlen, const uint8_t *in, size_t inlen, uint8_t lsb); -int8_t PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_verify(const uint16_t *a, const uint16_t *b, size_t len); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_select(uint8_t *r, const uint8_t *a, const uint8_t *b, size_t len, int8_t selector); -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(uint8_t *mem, size_t n); -uint16_t PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(uint16_t n); -uint16_t PQCLEAN_FRODOKEM1344SHAKE_CLEAN_UINT16_TO_LE(uint16_t n); - -#endif diff --git a/crypto_kem/frodo/frodokem1344shake/clean/kem.c b/crypto_kem/frodo/frodokem1344shake/clean/kem.c deleted file mode 100644 index 8374b5c3..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/kem.c +++ /dev/null @@ -1,237 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: Key Encapsulation Mechanism (KEM) based on Frodo -*********************************************************************************************/ - -#include -#include - -#include "fips202.h" -#include "randombytes.h" - -#include "api.h" -#include "common.h" -#include "params.h" - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_crypto_kem_keypair(uint8_t *pk, uint8_t *sk) { - // FrodoKEM's key generation - // Outputs: public key pk ( BYTES_SEED_A + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 bytes) - // secret key sk (CRYPTO_BYTES + BYTES_SEED_A + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 + 2*PARAMS_N*PARAMS_NBAR + BYTES_PKHASH bytes) - uint8_t *pk_seedA = &pk[0]; - uint8_t *pk_b = &pk[BYTES_SEED_A]; - uint8_t *sk_s = &sk[0]; - uint8_t *sk_pk = &sk[CRYPTO_BYTES]; - uint8_t *sk_S = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES]; - uint8_t *sk_pkh = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES + 2 * PARAMS_N * PARAMS_NBAR]; - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t S[2 * PARAMS_N * PARAMS_NBAR] = {0}; // contains secret data - uint16_t *E = &S[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint8_t randomness[2 * CRYPTO_BYTES + BYTES_SEED_A]; // contains secret data via randomness_s and randomness_seedSE - uint8_t *randomness_s = &randomness[0]; // contains secret data - uint8_t *randomness_seedSE = &randomness[CRYPTO_BYTES]; // contains secret data - uint8_t *randomness_z = &randomness[2 * CRYPTO_BYTES]; - uint8_t shake_input_seedSE[1 + CRYPTO_BYTES]; // contains secret data - - // Generate the secret value s, the seed for S and E, and the seed for the seed for A. Add seed_A to the public key - randombytes(randomness, CRYPTO_BYTES + CRYPTO_BYTES + BYTES_SEED_A); - shake(pk_seedA, BYTES_SEED_A, randomness_z, BYTES_SEED_A); - - // Generate S and E, and compute B = A*S + E. Generate A on-the-fly - shake_input_seedSE[0] = 0x5F; - memcpy(&shake_input_seedSE[1], randomness_seedSE, CRYPTO_BYTES); - shake((uint8_t *)S, 2 * PARAMS_N * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSE, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < 2 * PARAMS_N * PARAMS_NBAR; i++) { - S[i] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(S[i]); - } - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(S, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(E, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_as_plus_e(B, S, E, pk); - - // Encode the second part of the public key - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_pack(pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, B, PARAMS_N * PARAMS_NBAR, PARAMS_LOGQ); - - // Add s, pk and S to the secret key - memcpy(sk_s, randomness_s, CRYPTO_BYTES); - memcpy(sk_pk, pk, CRYPTO_PUBLICKEYBYTES); - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - S[i] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_UINT16_TO_LE(S[i]); - } - memcpy(sk_S, S, 2 * PARAMS_N * PARAMS_NBAR); - - // Add H(pk) to the secret key - shake(sk_pkh, BYTES_PKHASH, pk, CRYPTO_PUBLICKEYBYTES); - - // Cleanup: - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)S, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)E, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(randomness, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(shake_input_seedSE, 1 + CRYPTO_BYTES); - return 0; -} - - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk) { - // FrodoKEM's key encapsulation - const uint8_t *pk_seedA = &pk[0]; - const uint8_t *pk_b = &pk[BYTES_SEED_A]; - uint8_t *ct_c1 = &ct[0]; - uint8_t *ct_c2 = &ct[(PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8]; - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t V[PARAMS_NBAR * PARAMS_NBAR] = {0}; // contains secret data - uint16_t C[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t Bp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Sp[(2 * PARAMS_N + PARAMS_NBAR)*PARAMS_NBAR] = {0}; // contains secret data - uint16_t *Ep = &Sp[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint16_t *Epp = &Sp[2 * PARAMS_N * PARAMS_NBAR]; // contains secret data - uint8_t G2in[BYTES_PKHASH + BYTES_MU]; // contains secret data via mu - uint8_t *pkh = &G2in[0]; - uint8_t *mu = &G2in[BYTES_PKHASH]; // contains secret data - uint8_t G2out[2 * CRYPTO_BYTES]; // contains secret data - uint8_t *seedSE = &G2out[0]; // contains secret data - uint8_t *k = &G2out[CRYPTO_BYTES]; // contains secret data - uint8_t Fin[CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES]; // contains secret data via Fin_k - uint8_t *Fin_ct = &Fin[0]; - uint8_t *Fin_k = &Fin[CRYPTO_CIPHERTEXTBYTES]; // contains secret data - uint8_t shake_input_seedSE[1 + CRYPTO_BYTES]; // contains secret data - - // pkh <- G_1(pk), generate random mu, compute (seedSE || k) = G_2(pkh || mu) - shake(pkh, BYTES_PKHASH, pk, CRYPTO_PUBLICKEYBYTES); - randombytes(mu, BYTES_MU); - shake(G2out, CRYPTO_BYTES + CRYPTO_BYTES, G2in, BYTES_PKHASH + BYTES_MU); - - // Generate Sp and Ep, and compute Bp = Sp*A + Ep. Generate A on-the-fly - shake_input_seedSE[0] = 0x96; - memcpy(&shake_input_seedSE[1], seedSE, CRYPTO_BYTES); - shake((uint8_t *)Sp, (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSE, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR; i++) { - Sp[i] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(Sp[i]); - } - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(Sp, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(Ep, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sa_plus_e(Bp, Sp, Ep, pk_seedA); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_pack(ct_c1, (PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8, Bp, PARAMS_N * PARAMS_NBAR, PARAMS_LOGQ); - - // Generate Epp, and compute V = Sp*B + Epp - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(Epp, PARAMS_NBAR * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_unpack(B, PARAMS_N * PARAMS_NBAR, pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, PARAMS_LOGQ); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sb_plus_e(V, B, Sp, Epp); - - // Encode mu, and compute C = V + enc(mu) (mod q) - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_encode(C, (uint16_t *)mu); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_add(C, V, C); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_pack(ct_c2, (PARAMS_LOGQ * PARAMS_NBAR * PARAMS_NBAR) / 8, C, PARAMS_NBAR * PARAMS_NBAR, PARAMS_LOGQ); - - // Compute ss = F(ct||KK) - memcpy(Fin_ct, ct, CRYPTO_CIPHERTEXTBYTES); - memcpy(Fin_k, k, CRYPTO_BYTES); - shake(ss, CRYPTO_BYTES, Fin, CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES); - - // Cleanup: - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)V, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)Sp, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)Ep, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)Epp, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(mu, BYTES_MU); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(G2out, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(Fin_k, CRYPTO_BYTES); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(shake_input_seedSE, 1 + CRYPTO_BYTES); - return 0; -} - - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk) { - // FrodoKEM's key decapsulation - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Bp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t W[PARAMS_NBAR * PARAMS_NBAR] = {0}; // contains secret data - uint16_t C[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t CC[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t BBp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Sp[(2 * PARAMS_N + PARAMS_NBAR)*PARAMS_NBAR] = {0}; // contains secret data - uint16_t *Ep = &Sp[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint16_t *Epp = &Sp[2 * PARAMS_N * PARAMS_NBAR]; // contains secret data - const uint8_t *ct_c1 = &ct[0]; - const uint8_t *ct_c2 = &ct[(PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8]; - const uint8_t *sk_s = &sk[0]; - const uint8_t *sk_pk = &sk[CRYPTO_BYTES]; - const uint8_t *sk_S = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES]; - uint16_t S[PARAMS_N * PARAMS_NBAR]; // contains secret data - const uint8_t *sk_pkh = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES + 2 * PARAMS_N * PARAMS_NBAR]; - const uint8_t *pk_seedA = &sk_pk[0]; - const uint8_t *pk_b = &sk_pk[BYTES_SEED_A]; - uint8_t G2in[BYTES_PKHASH + BYTES_MU]; // contains secret data via muprime - uint8_t *pkh = &G2in[0]; - uint8_t *muprime = &G2in[BYTES_PKHASH]; // contains secret data - uint8_t G2out[2 * CRYPTO_BYTES]; // contains secret data - uint8_t *seedSEprime = &G2out[0]; // contains secret data - uint8_t *kprime = &G2out[CRYPTO_BYTES]; // contains secret data - uint8_t Fin[CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES]; // contains secret data via Fin_k - uint8_t *Fin_ct = &Fin[0]; - uint8_t *Fin_k = &Fin[CRYPTO_CIPHERTEXTBYTES]; // contains secret data - uint8_t shake_input_seedSEprime[1 + CRYPTO_BYTES]; // contains secret data - - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - S[i] = sk_S[2 * i] | (sk_S[2 * i + 1] << 8); - } - - // Compute W = C - Bp*S (mod q), and decode the randomness mu - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_unpack(Bp, PARAMS_N * PARAMS_NBAR, ct_c1, (PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8, PARAMS_LOGQ); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_unpack(C, PARAMS_NBAR * PARAMS_NBAR, ct_c2, (PARAMS_LOGQ * PARAMS_NBAR * PARAMS_NBAR) / 8, PARAMS_LOGQ); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_bs(W, Bp, S); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sub(W, C, W); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_decode((uint16_t *)muprime, W); - - // Generate (seedSE' || k') = G_2(pkh || mu') - memcpy(pkh, sk_pkh, BYTES_PKHASH); - shake(G2out, CRYPTO_BYTES + CRYPTO_BYTES, G2in, BYTES_PKHASH + BYTES_MU); - - // Generate Sp and Ep, and compute BBp = Sp*A + Ep. Generate A on-the-fly - shake_input_seedSEprime[0] = 0x96; - memcpy(&shake_input_seedSEprime[1], seedSEprime, CRYPTO_BYTES); - shake((uint8_t *)Sp, (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSEprime, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR; i++) { - Sp[i] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(Sp[i]); - } - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(Sp, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(Ep, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sa_plus_e(BBp, Sp, Ep, pk_seedA); - - // Generate Epp, and compute W = Sp*B + Epp - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(Epp, PARAMS_NBAR * PARAMS_NBAR); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_unpack(B, PARAMS_N * PARAMS_NBAR, pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, PARAMS_LOGQ); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sb_plus_e(W, B, Sp, Epp); - - // Encode mu, and compute CC = W + enc(mu') (mod q) - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_encode(CC, (uint16_t *)muprime); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_add(CC, W, CC); - - // Prepare input to F - memcpy(Fin_ct, ct, CRYPTO_CIPHERTEXTBYTES); - - // Reducing BBp modulo q - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - BBp[i] = BBp[i] & ((1 << PARAMS_LOGQ) - 1); - } - - // If (Bp == BBp & C == CC) then ss = F(ct || k'), else ss = F(ct || s) - // Needs to avoid branching on secret data as per: - // Qian Guo, Thomas Johansson, Alexander Nilsson. A key-recovery timing attack on post-quantum - // primitives using the Fujisaki-Okamoto transformation and its application on FrodoKEM. In CRYPTO 2020. - int8_t selector = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_verify(Bp, BBp, PARAMS_N * PARAMS_NBAR) | PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_verify(C, CC, PARAMS_NBAR * PARAMS_NBAR); - // If (selector == 0) then load k' to do ss = F(ct || k'), else if (selector == -1) load s to do ss = F(ct || s) - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_select((uint8_t *)Fin_k, (uint8_t *)kprime, (uint8_t *)sk_s, CRYPTO_BYTES, selector); - shake(ss, CRYPTO_BYTES, Fin, CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES); - - // Cleanup: - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)W, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)Sp, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)S, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)Ep, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes((uint8_t *)Epp, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(muprime, BYTES_MU); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(G2out, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(Fin_k, CRYPTO_BYTES); - PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(shake_input_seedSEprime, 1 + CRYPTO_BYTES); - return 0; -} diff --git a/crypto_kem/frodo/frodokem1344shake/clean/matrix_shake.c b/crypto_kem/frodo/frodokem1344shake/clean/matrix_shake.c deleted file mode 100644 index ba396d29..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/matrix_shake.c +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: matrix arithmetic functions used by the KEM -*********************************************************************************************/ - -#include -#include - -#include "fips202.h" - -#include "api.h" -#include "common.h" -#include "params.h" - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A) { - // Generate-and-multiply: generate matrix A (N x N) row-wise, multiply by s on the right. - // Inputs: s, e (N x N_BAR) - // Output: out = A*s + e (N x N_BAR) - int i, j, k; - int16_t A[PARAMS_N * PARAMS_N] = {0}; - - uint8_t seed_A_separated[2 + BYTES_SEED_A]; - uint16_t *seed_A_origin = (uint16_t *)&seed_A_separated; - memcpy(&seed_A_separated[2], seed_A, BYTES_SEED_A); - for (i = 0; i < PARAMS_N; i++) { - seed_A_origin[0] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_UINT16_TO_LE((uint16_t) i); - shake128((uint8_t *)(A + i * PARAMS_N), (unsigned long long)(2 * PARAMS_N), seed_A_separated, 2 + BYTES_SEED_A); - } - for (i = 0; i < PARAMS_N * PARAMS_N; i++) { - A[i] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(A[i]); - } - memcpy(out, e, PARAMS_NBAR * PARAMS_N * sizeof(uint16_t)); - - for (i = 0; i < PARAMS_N; i++) { // Matrix multiplication-addition A*s + e - for (k = 0; k < PARAMS_NBAR; k++) { - uint16_t sum = 0; - for (j = 0; j < PARAMS_N; j++) { - sum += A[i * PARAMS_N + j] * s[k * PARAMS_N + j]; - } - out[i * PARAMS_NBAR + k] += sum; // Adding e. No need to reduce modulo 2^15, extra bits are taken care of during packing later on. - } - } - - return 1; -} - - -int PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A) { - // Generate-and-multiply: generate matrix A (N x N) column-wise, multiply by s' on the left. - // Inputs: s', e' (N_BAR x N) - // Output: out = s'*A + e' (N_BAR x N) - int i, j, k; - int16_t A[PARAMS_N * PARAMS_N] = {0}; - - uint8_t seed_A_separated[2 + BYTES_SEED_A]; - uint16_t *seed_A_origin = (uint16_t *)&seed_A_separated; - memcpy(&seed_A_separated[2], seed_A, BYTES_SEED_A); - for (i = 0; i < PARAMS_N; i++) { - seed_A_origin[0] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_UINT16_TO_LE((uint16_t) i); - shake128((uint8_t *)(A + i * PARAMS_N), (unsigned long long)(2 * PARAMS_N), seed_A_separated, 2 + BYTES_SEED_A); - } - for (i = 0; i < PARAMS_N * PARAMS_N; i++) { - A[i] = PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(A[i]); - } - memcpy(out, e, PARAMS_NBAR * PARAMS_N * sizeof(uint16_t)); - - for (i = 0; i < PARAMS_N; i++) { // Matrix multiplication-addition A*s + e - for (k = 0; k < PARAMS_NBAR; k++) { - uint16_t sum = 0; - for (j = 0; j < PARAMS_N; j++) { - sum += A[j * PARAMS_N + i] * s[k * PARAMS_N + j]; - } - out[k * PARAMS_N + i] += sum; // Adding e. No need to reduce modulo 2^15, extra bits are taken care of during packing later on. - } - } - - return 1; -} diff --git a/crypto_kem/frodo/frodokem1344shake/clean/noise.c b/crypto_kem/frodo/frodokem1344shake/clean/noise.c deleted file mode 100644 index 7e68616f..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/noise.c +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: noise sampling functions -*********************************************************************************************/ - -#include - -#include "api.h" -#include "common.h" -#include "params.h" - -static const uint16_t CDF_TABLE[CDF_TABLE_LEN] = CDF_TABLE_DATA; - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sample_n(uint16_t *s, size_t n) { - // Fills vector s with n samples from the noise distribution which requires 16 bits to sample. - // The distribution is specified by its CDF. - // Input: pseudo-random values (2*n bytes) passed in s. The input is overwritten by the output. - size_t i; - unsigned int j; - - for (i = 0; i < n; ++i) { - uint16_t sample = 0; - uint16_t prnd = s[i] >> 1; // Drop the least significant bit - uint16_t sign = s[i] & 0x1; // Pick the least significant bit - - // No need to compare with the last value. - for (j = 0; j < (unsigned int)(CDF_TABLE_LEN - 1); j++) { - // Constant time comparison: 1 if CDF_TABLE[j] < s, 0 otherwise. Uses the fact that CDF_TABLE[j] and s fit in 15 bits. - sample += (uint16_t)(CDF_TABLE[j] - prnd) >> 15; - } - // Assuming that sign is either 0 or 1, flips sample iff sign = 1 - s[i] = ((-sign) ^ sample) + sign; - } -} diff --git a/crypto_kem/frodo/frodokem1344shake/clean/params.h b/crypto_kem/frodo/frodokem1344shake/clean/params.h deleted file mode 100644 index ff3dccee..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/params.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PARAMS_H -#define PARAMS_H - -#define CRYPTO_SECRETKEYBYTES PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_SECRETKEYBYTES -#define CRYPTO_PUBLICKEYBYTES PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_PUBLICKEYBYTES -#define CRYPTO_BYTES PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_BYTES -#define CRYPTO_CIPHERTEXTBYTES PQCLEAN_FRODOKEM1344SHAKE_CLEAN_CRYPTO_CIPHERTEXTBYTES - -#define PARAMS_N 1344 -#define PARAMS_NBAR 8 -#define PARAMS_LOGQ 16 -#define PARAMS_Q (1 << PARAMS_LOGQ) -#define PARAMS_EXTRACTED_BITS 4 -#define PARAMS_STRIPE_STEP 8 -#define PARAMS_PARALLEL 4 -#define BYTES_SEED_A 16 -#define BYTES_MU ((PARAMS_EXTRACTED_BITS * PARAMS_NBAR * PARAMS_NBAR) / 8) -#define BYTES_PKHASH CRYPTO_BYTES - -// Selecting SHAKE XOF function for the KEM and noise sampling -#define shake shake256 - -// CDF table -#define CDF_TABLE_DATA {9142, 23462, 30338, 32361, 32725, 32765, 32767} -#define CDF_TABLE_LEN 7 - -#endif diff --git a/crypto_kem/frodo/frodokem1344shake/clean/util.c b/crypto_kem/frodo/frodokem1344shake/clean/util.c deleted file mode 100644 index d7462df6..00000000 --- a/crypto_kem/frodo/frodokem1344shake/clean/util.c +++ /dev/null @@ -1,264 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: additional functions for FrodoKEM -*********************************************************************************************/ - -#include -#include - -#include "api.h" -#include "common.h" -#include "params.h" - -static inline uint8_t min(uint8_t x, uint8_t y) { - if (x < y) { - return x; - } - return y; -} - -uint16_t PQCLEAN_FRODOKEM1344SHAKE_CLEAN_LE_TO_UINT16(uint16_t n) { - return (((uint8_t *) &n)[0] | (((uint8_t *) &n)[1] << 8)); -} - -uint16_t PQCLEAN_FRODOKEM1344SHAKE_CLEAN_UINT16_TO_LE(uint16_t n) { - uint16_t y; - uint8_t *z = (uint8_t *) &y; - z[0] = n & 0xFF; - z[1] = (n & 0xFF00) >> 8; - return y; -} - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_bs(uint16_t *out, const uint16_t *b, const uint16_t *s) { - // Multiply by s on the right - // Inputs: b (N_BAR x N), s (N x N_BAR) - // Output: out = b*s (N_BAR x N_BAR) - int i, j, k; - - for (i = 0; i < PARAMS_NBAR; i++) { - for (j = 0; j < PARAMS_NBAR; j++) { - out[i * PARAMS_NBAR + j] = 0; - for (k = 0; k < PARAMS_N; k++) { - out[i * PARAMS_NBAR + j] += (uint16_t)(b[i * PARAMS_N + k] * (uint32_t)s[j * PARAMS_N + k]); - } - out[i * PARAMS_NBAR + j] = (uint32_t)(out[i * PARAMS_NBAR + j]) & ((1 << PARAMS_LOGQ) - 1); - } - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_mul_add_sb_plus_e(uint16_t *out, const uint16_t *b, const uint16_t *s, const uint16_t *e) { - // Multiply by s on the left - // Inputs: b (N x N_BAR), s (N_BAR x N), e (N_BAR x N_BAR) - // Output: out = s*b + e (N_BAR x N_BAR) - int i, j, k; - - for (k = 0; k < PARAMS_NBAR; k++) { - for (i = 0; i < PARAMS_NBAR; i++) { - out[k * PARAMS_NBAR + i] = e[k * PARAMS_NBAR + i]; - for (j = 0; j < PARAMS_N; j++) { - out[k * PARAMS_NBAR + i] += (uint16_t)(s[k * PARAMS_N + j] * (uint32_t)b[j * PARAMS_NBAR + i]); - } - out[k * PARAMS_NBAR + i] = (uint32_t)(out[k * PARAMS_NBAR + i]) & ((1 << PARAMS_LOGQ) - 1); - } - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_add(uint16_t *out, const uint16_t *a, const uint16_t *b) { - // Add a and b - // Inputs: a, b (N_BAR x N_BAR) - // Output: c = a + b - - for (size_t i = 0; i < (PARAMS_NBAR * PARAMS_NBAR); i++) { - out[i] = (a[i] + b[i]) & ((1 << PARAMS_LOGQ) - 1); - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_sub(uint16_t *out, const uint16_t *a, const uint16_t *b) { - // Subtract a and b - // Inputs: a, b (N_BAR x N_BAR) - // Output: c = a - b - - for (size_t i = 0; i < (PARAMS_NBAR * PARAMS_NBAR); i++) { - out[i] = (a[i] - b[i]) & ((1 << PARAMS_LOGQ) - 1); - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_encode(uint16_t *out, const uint16_t *in) { - // Encoding - unsigned int i, j, npieces_word = 8; - unsigned int nwords = (PARAMS_NBAR * PARAMS_NBAR) / 8; - uint64_t temp, mask = ((uint64_t)1 << PARAMS_EXTRACTED_BITS) - 1; - uint16_t *pos = out; - - for (i = 0; i < nwords; i++) { - temp = 0; - for (j = 0; j < PARAMS_EXTRACTED_BITS; j++) { - temp |= ((uint64_t)((uint8_t *)in)[i * PARAMS_EXTRACTED_BITS + j]) << (8 * j); - } - for (j = 0; j < npieces_word; j++) { - *pos = (uint16_t)((temp & mask) << (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS)); - temp >>= PARAMS_EXTRACTED_BITS; - pos++; - } - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_key_decode(uint16_t *out, const uint16_t *in) { - // Decoding - unsigned int i, j, index = 0, npieces_word = 8; - unsigned int nwords = (PARAMS_NBAR * PARAMS_NBAR) / 8; - uint16_t temp, maskex = ((uint16_t)1 << PARAMS_EXTRACTED_BITS) - 1, maskq = ((uint16_t)1 << PARAMS_LOGQ) - 1; - uint8_t *pos = (uint8_t *)out; - uint64_t templong; - - for (i = 0; i < nwords; i++) { - templong = 0; - for (j = 0; j < npieces_word; j++) { // temp = floor(in*2^{-11}+0.5) - temp = ((in[index] & maskq) + (1 << (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS - 1))) >> (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS); - templong |= ((uint64_t)(temp & maskex)) << (PARAMS_EXTRACTED_BITS * j); - index++; - } - for (j = 0; j < PARAMS_EXTRACTED_BITS; j++) { - pos[i * PARAMS_EXTRACTED_BITS + j] = (templong >> (8 * j)) & 0xFF; - } - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_pack(uint8_t *out, size_t outlen, const uint16_t *in, size_t inlen, uint8_t lsb) { - // Pack the input uint16 vector into a char output vector, copying lsb bits from each input element. - // If inlen * lsb / 8 > outlen, only outlen * 8 bits are copied. - memset(out, 0, outlen); - - size_t i = 0; // whole bytes already filled in - size_t j = 0; // whole uint16_t already copied - uint16_t w = 0; // the leftover, not yet copied - uint8_t bits = 0; // the number of lsb in w - - while (i < outlen && (j < inlen || ((j == inlen) && (bits > 0)))) { - /* - in: | | |********|********| - ^ - j - w : | ****| - ^ - bits - out:|**|**|**|**|**|**|**|**|* | - ^^ - ib - */ - uint8_t b = 0; // bits in out[i] already filled in - while (b < 8) { - int nbits = min(8 - b, bits); - uint16_t mask = (1 << nbits) - 1; - uint8_t t = (uint8_t) ((w >> (bits - nbits)) & mask); // the bits to copy from w to out - out[i] = out[i] + (t << (8 - b - nbits)); - b += (uint8_t) nbits; - bits -= (uint8_t) nbits; - w &= ~(mask << bits); // not strictly necessary; mostly for debugging - - if (bits == 0) { - if (j < inlen) { - w = in[j]; - bits = lsb; - j++; - } else { - break; // the input vector is exhausted - } - } - } - if (b == 8) { // out[i] is filled in - i++; - } - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_unpack(uint16_t *out, size_t outlen, const uint8_t *in, size_t inlen, uint8_t lsb) { - // Unpack the input char vector into a uint16_t output vector, copying lsb bits - // for each output element from input. outlen must be at least ceil(inlen * 8 / lsb). - memset(out, 0, outlen * sizeof(uint16_t)); - - size_t i = 0; // whole uint16_t already filled in - size_t j = 0; // whole bytes already copied - uint8_t w = 0; // the leftover, not yet copied - uint8_t bits = 0; // the number of lsb bits of w - - while (i < outlen && (j < inlen || ((j == inlen) && (bits > 0)))) { - /* - in: | | | | | | |**|**|... - ^ - j - w : | *| - ^ - bits - out:| *****| *****| *** | |... - ^ ^ - i b - */ - uint8_t b = 0; // bits in out[i] already filled in - while (b < lsb) { - int nbits = min(lsb - b, bits); - uint16_t mask = (1 << nbits) - 1; - uint8_t t = (w >> (bits - nbits)) & mask; // the bits to copy from w to out - out[i] = out[i] + (t << (lsb - b - nbits)); - b += (uint8_t) nbits; - bits -= (uint8_t) nbits; - w &= ~(mask << bits); // not strictly necessary; mostly for debugging - - if (bits == 0) { - if (j < inlen) { - w = in[j]; - bits = 8; - j++; - } else { - break; // the input vector is exhausted - } - } - } - if (b == lsb) { // out[i] is filled in - i++; - } - } -} - - -int8_t PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_verify(const uint16_t *a, const uint16_t *b, size_t len) { - // Compare two arrays in constant time. - // Returns 0 if the byte arrays are equal, -1 otherwise. - uint16_t r = 0; - - for (size_t i = 0; i < len; i++) { - r |= a[i] ^ b[i]; - } - - r = (-(int16_t)(r >> 1) | -(int16_t)(r & 1)) >> (8 * sizeof(uint16_t) -1); - return (int8_t)r; -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_ct_select(uint8_t *r, const uint8_t *a, const uint8_t *b, size_t len, int8_t selector) { - // Select one of the two input arrays to be moved to r - // If (selector == 0) then load r with a, else if (selector == -1) load r with b - - for (size_t i = 0; i < len; i++) { - r[i] = (~selector & a[i]) | (selector & b[i]); - } -} - - -void PQCLEAN_FRODOKEM1344SHAKE_CLEAN_clear_bytes(uint8_t *mem, size_t n) { - // Clear 8-bit bytes from memory. "n" indicates the number of bytes to be zeroed. - // This function uses the volatile type qualifier to inform the compiler not to optimize out the memory clearing. - volatile uint8_t *v = mem; - - for (size_t i = 0; i < n; i++) { - v[i] = 0; - } -} diff --git a/crypto_kem/frodo/frodokem1344shake/opt/LICENSE b/crypto_kem/frodo/frodokem1344shake/opt/LICENSE deleted file mode 100644 index 5cf7c8db..00000000 --- a/crypto_kem/frodo/frodokem1344shake/opt/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/crypto_kem/frodo/frodokem1344shake/opt/Makefile.Microsoft_nmake b/crypto_kem/frodo/frodokem1344shake/opt/Makefile.Microsoft_nmake deleted file mode 100644 index b500e0a5..00000000 --- a/crypto_kem/frodo/frodokem1344shake/opt/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfrodokem1344shake_opt.lib -OBJECTS=kem.obj matrix_shake.obj noise.obj util.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/frodo/frodokem640shake/clean/LICENSE b/crypto_kem/frodo/frodokem640shake/clean/LICENSE deleted file mode 100644 index 5cf7c8db..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/crypto_kem/frodo/frodokem640shake/clean/Makefile.Microsoft_nmake b/crypto_kem/frodo/frodokem640shake/clean/Makefile.Microsoft_nmake deleted file mode 100644 index de6338b1..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfrodokem640shake_clean.lib -OBJECTS=kem.obj matrix_shake.obj noise.obj util.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/frodo/frodokem640shake/clean/api.h b/crypto_kem/frodo/frodokem640shake/clean/api.h deleted file mode 100644 index 74bbdab2..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/api.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef PQCLEAN_FRODOKEM640SHAKE_CLEAN_API_H -#define PQCLEAN_FRODOKEM640SHAKE_CLEAN_API_H - -#include -#include - -#define PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_SECRETKEYBYTES 19888 // sizeof(s) + CRYPTO_PUBLICKEYBYTES + 2*PARAMS_N*PARAMS_NBAR + BYTES_PKHASH -#define PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_PUBLICKEYBYTES 9616 // sizeof(seed_A) + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 -#define PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_BYTES 16 -#define PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_CIPHERTEXTBYTES 9720 // (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 + (PARAMS_LOGQ*PARAMS_NBAR*PARAMS_NBAR)/8 - -#define PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_ALGNAME "FrodoKEM-640-SHAKE" - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_crypto_kem_keypair(uint8_t *pk, uint8_t *sk); - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk); - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk); - -#endif diff --git a/crypto_kem/frodo/frodokem640shake/clean/common.h b/crypto_kem/frodo/frodokem640shake/clean/common.h deleted file mode 100644 index ddba6428..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/common.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef COMMON_H -#define COMMON_H - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A); -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(uint16_t *s, size_t n); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_bs(uint16_t *out, const uint16_t *b, const uint16_t *s); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sb_plus_e(uint16_t *out, const uint16_t *b, const uint16_t *s, const uint16_t *e); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_add(uint16_t *out, const uint16_t *a, const uint16_t *b); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_sub(uint16_t *out, const uint16_t *a, const uint16_t *b); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_encode(uint16_t *out, const uint16_t *in); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_decode(uint16_t *out, const uint16_t *in); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_pack(uint8_t *out, size_t outlen, const uint16_t *in, size_t inlen, uint8_t lsb); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_unpack(uint16_t *out, size_t outlen, const uint8_t *in, size_t inlen, uint8_t lsb); -int8_t PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_verify(const uint16_t *a, const uint16_t *b, size_t len); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_select(uint8_t *r, const uint8_t *a, const uint8_t *b, size_t len, int8_t selector); -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(uint8_t *mem, size_t n); -uint16_t PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(uint16_t n); -uint16_t PQCLEAN_FRODOKEM640SHAKE_CLEAN_UINT16_TO_LE(uint16_t n); - -#endif diff --git a/crypto_kem/frodo/frodokem640shake/clean/kem.c b/crypto_kem/frodo/frodokem640shake/clean/kem.c deleted file mode 100644 index 40d5dd76..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/kem.c +++ /dev/null @@ -1,237 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: Key Encapsulation Mechanism (KEM) based on Frodo -*********************************************************************************************/ - -#include -#include - -#include "fips202.h" -#include "randombytes.h" - -#include "api.h" -#include "common.h" -#include "params.h" - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_crypto_kem_keypair(uint8_t *pk, uint8_t *sk) { - // FrodoKEM's key generation - // Outputs: public key pk ( BYTES_SEED_A + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 bytes) - // secret key sk (CRYPTO_BYTES + BYTES_SEED_A + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 + 2*PARAMS_N*PARAMS_NBAR + BYTES_PKHASH bytes) - uint8_t *pk_seedA = &pk[0]; - uint8_t *pk_b = &pk[BYTES_SEED_A]; - uint8_t *sk_s = &sk[0]; - uint8_t *sk_pk = &sk[CRYPTO_BYTES]; - uint8_t *sk_S = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES]; - uint8_t *sk_pkh = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES + 2 * PARAMS_N * PARAMS_NBAR]; - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t S[2 * PARAMS_N * PARAMS_NBAR] = {0}; // contains secret data - uint16_t *E = &S[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint8_t randomness[2 * CRYPTO_BYTES + BYTES_SEED_A]; // contains secret data via randomness_s and randomness_seedSE - uint8_t *randomness_s = &randomness[0]; // contains secret data - uint8_t *randomness_seedSE = &randomness[CRYPTO_BYTES]; // contains secret data - uint8_t *randomness_z = &randomness[2 * CRYPTO_BYTES]; - uint8_t shake_input_seedSE[1 + CRYPTO_BYTES]; // contains secret data - - // Generate the secret value s, the seed for S and E, and the seed for the seed for A. Add seed_A to the public key - randombytes(randomness, CRYPTO_BYTES + CRYPTO_BYTES + BYTES_SEED_A); - shake(pk_seedA, BYTES_SEED_A, randomness_z, BYTES_SEED_A); - - // Generate S and E, and compute B = A*S + E. Generate A on-the-fly - shake_input_seedSE[0] = 0x5F; - memcpy(&shake_input_seedSE[1], randomness_seedSE, CRYPTO_BYTES); - shake((uint8_t *)S, 2 * PARAMS_N * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSE, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < 2 * PARAMS_N * PARAMS_NBAR; i++) { - S[i] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(S[i]); - } - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(S, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(E, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_as_plus_e(B, S, E, pk); - - // Encode the second part of the public key - PQCLEAN_FRODOKEM640SHAKE_CLEAN_pack(pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, B, PARAMS_N * PARAMS_NBAR, PARAMS_LOGQ); - - // Add s, pk and S to the secret key - memcpy(sk_s, randomness_s, CRYPTO_BYTES); - memcpy(sk_pk, pk, CRYPTO_PUBLICKEYBYTES); - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - S[i] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_UINT16_TO_LE(S[i]); - } - memcpy(sk_S, S, 2 * PARAMS_N * PARAMS_NBAR); - - // Add H(pk) to the secret key - shake(sk_pkh, BYTES_PKHASH, pk, CRYPTO_PUBLICKEYBYTES); - - // Cleanup: - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)S, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)E, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(randomness, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(shake_input_seedSE, 1 + CRYPTO_BYTES); - return 0; -} - - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk) { - // FrodoKEM's key encapsulation - const uint8_t *pk_seedA = &pk[0]; - const uint8_t *pk_b = &pk[BYTES_SEED_A]; - uint8_t *ct_c1 = &ct[0]; - uint8_t *ct_c2 = &ct[(PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8]; - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t V[PARAMS_NBAR * PARAMS_NBAR] = {0}; // contains secret data - uint16_t C[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t Bp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Sp[(2 * PARAMS_N + PARAMS_NBAR)*PARAMS_NBAR] = {0}; // contains secret data - uint16_t *Ep = &Sp[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint16_t *Epp = &Sp[2 * PARAMS_N * PARAMS_NBAR]; // contains secret data - uint8_t G2in[BYTES_PKHASH + BYTES_MU]; // contains secret data via mu - uint8_t *pkh = &G2in[0]; - uint8_t *mu = &G2in[BYTES_PKHASH]; // contains secret data - uint8_t G2out[2 * CRYPTO_BYTES]; // contains secret data - uint8_t *seedSE = &G2out[0]; // contains secret data - uint8_t *k = &G2out[CRYPTO_BYTES]; // contains secret data - uint8_t Fin[CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES]; // contains secret data via Fin_k - uint8_t *Fin_ct = &Fin[0]; - uint8_t *Fin_k = &Fin[CRYPTO_CIPHERTEXTBYTES]; // contains secret data - uint8_t shake_input_seedSE[1 + CRYPTO_BYTES]; // contains secret data - - // pkh <- G_1(pk), generate random mu, compute (seedSE || k) = G_2(pkh || mu) - shake(pkh, BYTES_PKHASH, pk, CRYPTO_PUBLICKEYBYTES); - randombytes(mu, BYTES_MU); - shake(G2out, CRYPTO_BYTES + CRYPTO_BYTES, G2in, BYTES_PKHASH + BYTES_MU); - - // Generate Sp and Ep, and compute Bp = Sp*A + Ep. Generate A on-the-fly - shake_input_seedSE[0] = 0x96; - memcpy(&shake_input_seedSE[1], seedSE, CRYPTO_BYTES); - shake((uint8_t *)Sp, (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSE, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR; i++) { - Sp[i] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(Sp[i]); - } - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(Sp, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(Ep, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sa_plus_e(Bp, Sp, Ep, pk_seedA); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_pack(ct_c1, (PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8, Bp, PARAMS_N * PARAMS_NBAR, PARAMS_LOGQ); - - // Generate Epp, and compute V = Sp*B + Epp - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(Epp, PARAMS_NBAR * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_unpack(B, PARAMS_N * PARAMS_NBAR, pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, PARAMS_LOGQ); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sb_plus_e(V, B, Sp, Epp); - - // Encode mu, and compute C = V + enc(mu) (mod q) - PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_encode(C, (uint16_t *)mu); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_add(C, V, C); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_pack(ct_c2, (PARAMS_LOGQ * PARAMS_NBAR * PARAMS_NBAR) / 8, C, PARAMS_NBAR * PARAMS_NBAR, PARAMS_LOGQ); - - // Compute ss = F(ct||KK) - memcpy(Fin_ct, ct, CRYPTO_CIPHERTEXTBYTES); - memcpy(Fin_k, k, CRYPTO_BYTES); - shake(ss, CRYPTO_BYTES, Fin, CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES); - - // Cleanup: - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)V, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)Sp, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)Ep, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)Epp, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(mu, BYTES_MU); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(G2out, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(Fin_k, CRYPTO_BYTES); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(shake_input_seedSE, 1 + CRYPTO_BYTES); - return 0; -} - - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk) { - // FrodoKEM's key decapsulation - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Bp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t W[PARAMS_NBAR * PARAMS_NBAR] = {0}; // contains secret data - uint16_t C[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t CC[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t BBp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Sp[(2 * PARAMS_N + PARAMS_NBAR)*PARAMS_NBAR] = {0}; // contains secret data - uint16_t *Ep = &Sp[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint16_t *Epp = &Sp[2 * PARAMS_N * PARAMS_NBAR]; // contains secret data - const uint8_t *ct_c1 = &ct[0]; - const uint8_t *ct_c2 = &ct[(PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8]; - const uint8_t *sk_s = &sk[0]; - const uint8_t *sk_pk = &sk[CRYPTO_BYTES]; - const uint8_t *sk_S = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES]; - uint16_t S[PARAMS_N * PARAMS_NBAR]; // contains secret data - const uint8_t *sk_pkh = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES + 2 * PARAMS_N * PARAMS_NBAR]; - const uint8_t *pk_seedA = &sk_pk[0]; - const uint8_t *pk_b = &sk_pk[BYTES_SEED_A]; - uint8_t G2in[BYTES_PKHASH + BYTES_MU]; // contains secret data via muprime - uint8_t *pkh = &G2in[0]; - uint8_t *muprime = &G2in[BYTES_PKHASH]; // contains secret data - uint8_t G2out[2 * CRYPTO_BYTES]; // contains secret data - uint8_t *seedSEprime = &G2out[0]; // contains secret data - uint8_t *kprime = &G2out[CRYPTO_BYTES]; // contains secret data - uint8_t Fin[CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES]; // contains secret data via Fin_k - uint8_t *Fin_ct = &Fin[0]; - uint8_t *Fin_k = &Fin[CRYPTO_CIPHERTEXTBYTES]; // contains secret data - uint8_t shake_input_seedSEprime[1 + CRYPTO_BYTES]; // contains secret data - - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - S[i] = sk_S[2 * i] | (sk_S[2 * i + 1] << 8); - } - - // Compute W = C - Bp*S (mod q), and decode the randomness mu - PQCLEAN_FRODOKEM640SHAKE_CLEAN_unpack(Bp, PARAMS_N * PARAMS_NBAR, ct_c1, (PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8, PARAMS_LOGQ); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_unpack(C, PARAMS_NBAR * PARAMS_NBAR, ct_c2, (PARAMS_LOGQ * PARAMS_NBAR * PARAMS_NBAR) / 8, PARAMS_LOGQ); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_bs(W, Bp, S); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sub(W, C, W); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_decode((uint16_t *)muprime, W); - - // Generate (seedSE' || k') = G_2(pkh || mu') - memcpy(pkh, sk_pkh, BYTES_PKHASH); - shake(G2out, CRYPTO_BYTES + CRYPTO_BYTES, G2in, BYTES_PKHASH + BYTES_MU); - - // Generate Sp and Ep, and compute BBp = Sp*A + Ep. Generate A on-the-fly - shake_input_seedSEprime[0] = 0x96; - memcpy(&shake_input_seedSEprime[1], seedSEprime, CRYPTO_BYTES); - shake((uint8_t *)Sp, (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSEprime, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR; i++) { - Sp[i] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(Sp[i]); - } - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(Sp, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(Ep, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sa_plus_e(BBp, Sp, Ep, pk_seedA); - - // Generate Epp, and compute W = Sp*B + Epp - PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(Epp, PARAMS_NBAR * PARAMS_NBAR); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_unpack(B, PARAMS_N * PARAMS_NBAR, pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, PARAMS_LOGQ); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sb_plus_e(W, B, Sp, Epp); - - // Encode mu, and compute CC = W + enc(mu') (mod q) - PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_encode(CC, (uint16_t *)muprime); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_add(CC, W, CC); - - // Prepare input to F - memcpy(Fin_ct, ct, CRYPTO_CIPHERTEXTBYTES); - - // Reducing BBp modulo q - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - BBp[i] = BBp[i] & ((1 << PARAMS_LOGQ) - 1); - } - - // If (Bp == BBp & C == CC) then ss = F(ct || k'), else ss = F(ct || s) - // Needs to avoid branching on secret data as per: - // Qian Guo, Thomas Johansson, Alexander Nilsson. A key-recovery timing attack on post-quantum - // primitives using the Fujisaki-Okamoto transformation and its application on FrodoKEM. In CRYPTO 2020. - int8_t selector = PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_verify(Bp, BBp, PARAMS_N * PARAMS_NBAR) | PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_verify(C, CC, PARAMS_NBAR * PARAMS_NBAR); - // If (selector == 0) then load k' to do ss = F(ct || k'), else if (selector == -1) load s to do ss = F(ct || s) - PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_select((uint8_t *)Fin_k, (uint8_t *)kprime, (uint8_t *)sk_s, CRYPTO_BYTES, selector); - shake(ss, CRYPTO_BYTES, Fin, CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES); - - // Cleanup: - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)W, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)Sp, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)S, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)Ep, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes((uint8_t *)Epp, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(muprime, BYTES_MU); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(G2out, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(Fin_k, CRYPTO_BYTES); - PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(shake_input_seedSEprime, 1 + CRYPTO_BYTES); - return 0; -} diff --git a/crypto_kem/frodo/frodokem640shake/clean/matrix_shake.c b/crypto_kem/frodo/frodokem640shake/clean/matrix_shake.c deleted file mode 100644 index 5524b975..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/matrix_shake.c +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: matrix arithmetic functions used by the KEM -*********************************************************************************************/ - -#include -#include - -#include "fips202.h" - -#include "api.h" -#include "common.h" -#include "params.h" - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A) { - // Generate-and-multiply: generate matrix A (N x N) row-wise, multiply by s on the right. - // Inputs: s, e (N x N_BAR) - // Output: out = A*s + e (N x N_BAR) - int i, j, k; - int16_t A[PARAMS_N * PARAMS_N] = {0}; - - uint8_t seed_A_separated[2 + BYTES_SEED_A]; - uint16_t *seed_A_origin = (uint16_t *)&seed_A_separated; - memcpy(&seed_A_separated[2], seed_A, BYTES_SEED_A); - for (i = 0; i < PARAMS_N; i++) { - seed_A_origin[0] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_UINT16_TO_LE((uint16_t) i); - shake128((uint8_t *)(A + i * PARAMS_N), (unsigned long long)(2 * PARAMS_N), seed_A_separated, 2 + BYTES_SEED_A); - } - for (i = 0; i < PARAMS_N * PARAMS_N; i++) { - A[i] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(A[i]); - } - memcpy(out, e, PARAMS_NBAR * PARAMS_N * sizeof(uint16_t)); - - for (i = 0; i < PARAMS_N; i++) { // Matrix multiplication-addition A*s + e - for (k = 0; k < PARAMS_NBAR; k++) { - uint16_t sum = 0; - for (j = 0; j < PARAMS_N; j++) { - sum += A[i * PARAMS_N + j] * s[k * PARAMS_N + j]; - } - out[i * PARAMS_NBAR + k] += sum; // Adding e. No need to reduce modulo 2^15, extra bits are taken care of during packing later on. - } - } - - return 1; -} - - -int PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A) { - // Generate-and-multiply: generate matrix A (N x N) column-wise, multiply by s' on the left. - // Inputs: s', e' (N_BAR x N) - // Output: out = s'*A + e' (N_BAR x N) - int i, j, k; - int16_t A[PARAMS_N * PARAMS_N] = {0}; - - uint8_t seed_A_separated[2 + BYTES_SEED_A]; - uint16_t *seed_A_origin = (uint16_t *)&seed_A_separated; - memcpy(&seed_A_separated[2], seed_A, BYTES_SEED_A); - for (i = 0; i < PARAMS_N; i++) { - seed_A_origin[0] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_UINT16_TO_LE((uint16_t) i); - shake128((uint8_t *)(A + i * PARAMS_N), (unsigned long long)(2 * PARAMS_N), seed_A_separated, 2 + BYTES_SEED_A); - } - for (i = 0; i < PARAMS_N * PARAMS_N; i++) { - A[i] = PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(A[i]); - } - memcpy(out, e, PARAMS_NBAR * PARAMS_N * sizeof(uint16_t)); - - for (i = 0; i < PARAMS_N; i++) { // Matrix multiplication-addition A*s + e - for (k = 0; k < PARAMS_NBAR; k++) { - uint16_t sum = 0; - for (j = 0; j < PARAMS_N; j++) { - sum += A[j * PARAMS_N + i] * s[k * PARAMS_N + j]; - } - out[k * PARAMS_N + i] += sum; // Adding e. No need to reduce modulo 2^15, extra bits are taken care of during packing later on. - } - } - - return 1; -} diff --git a/crypto_kem/frodo/frodokem640shake/clean/noise.c b/crypto_kem/frodo/frodokem640shake/clean/noise.c deleted file mode 100644 index 9ca892e3..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/noise.c +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: noise sampling functions -*********************************************************************************************/ - -#include - -#include "api.h" -#include "common.h" -#include "params.h" - -static const uint16_t CDF_TABLE[CDF_TABLE_LEN] = CDF_TABLE_DATA; - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_sample_n(uint16_t *s, size_t n) { - // Fills vector s with n samples from the noise distribution which requires 16 bits to sample. - // The distribution is specified by its CDF. - // Input: pseudo-random values (2*n bytes) passed in s. The input is overwritten by the output. - size_t i; - unsigned int j; - - for (i = 0; i < n; ++i) { - uint16_t sample = 0; - uint16_t prnd = s[i] >> 1; // Drop the least significant bit - uint16_t sign = s[i] & 0x1; // Pick the least significant bit - - // No need to compare with the last value. - for (j = 0; j < (unsigned int)(CDF_TABLE_LEN - 1); j++) { - // Constant time comparison: 1 if CDF_TABLE[j] < s, 0 otherwise. Uses the fact that CDF_TABLE[j] and s fit in 15 bits. - sample += (uint16_t)(CDF_TABLE[j] - prnd) >> 15; - } - // Assuming that sign is either 0 or 1, flips sample iff sign = 1 - s[i] = ((-sign) ^ sample) + sign; - } -} diff --git a/crypto_kem/frodo/frodokem640shake/clean/params.h b/crypto_kem/frodo/frodokem640shake/clean/params.h deleted file mode 100644 index 81a30054..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/params.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PARAMS_H -#define PARAMS_H - -#define CRYPTO_SECRETKEYBYTES PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_SECRETKEYBYTES -#define CRYPTO_PUBLICKEYBYTES PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_PUBLICKEYBYTES -#define CRYPTO_BYTES PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_BYTES -#define CRYPTO_CIPHERTEXTBYTES PQCLEAN_FRODOKEM640SHAKE_CLEAN_CRYPTO_CIPHERTEXTBYTES - -#define PARAMS_N 640 -#define PARAMS_NBAR 8 -#define PARAMS_LOGQ 15 -#define PARAMS_Q (1 << PARAMS_LOGQ) -#define PARAMS_EXTRACTED_BITS 2 -#define PARAMS_STRIPE_STEP 8 -#define PARAMS_PARALLEL 4 -#define BYTES_SEED_A 16 -#define BYTES_MU ((PARAMS_EXTRACTED_BITS * PARAMS_NBAR * PARAMS_NBAR) / 8) -#define BYTES_PKHASH CRYPTO_BYTES - -// Selecting SHAKE XOF function for the KEM and noise sampling -#define shake shake128 - -// CDF table -#define CDF_TABLE_DATA {4643, 13363, 20579, 25843, 29227, 31145, 32103, 32525, 32689, 32745, 32762, 32766, 32767} -#define CDF_TABLE_LEN 13 - -#endif diff --git a/crypto_kem/frodo/frodokem640shake/clean/util.c b/crypto_kem/frodo/frodokem640shake/clean/util.c deleted file mode 100644 index 67be6b76..00000000 --- a/crypto_kem/frodo/frodokem640shake/clean/util.c +++ /dev/null @@ -1,264 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: additional functions for FrodoKEM -*********************************************************************************************/ - -#include -#include - -#include "api.h" -#include "common.h" -#include "params.h" - -static inline uint8_t min(uint8_t x, uint8_t y) { - if (x < y) { - return x; - } - return y; -} - -uint16_t PQCLEAN_FRODOKEM640SHAKE_CLEAN_LE_TO_UINT16(uint16_t n) { - return (((uint8_t *) &n)[0] | (((uint8_t *) &n)[1] << 8)); -} - -uint16_t PQCLEAN_FRODOKEM640SHAKE_CLEAN_UINT16_TO_LE(uint16_t n) { - uint16_t y; - uint8_t *z = (uint8_t *) &y; - z[0] = n & 0xFF; - z[1] = (n & 0xFF00) >> 8; - return y; -} - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_bs(uint16_t *out, const uint16_t *b, const uint16_t *s) { - // Multiply by s on the right - // Inputs: b (N_BAR x N), s (N x N_BAR) - // Output: out = b*s (N_BAR x N_BAR) - int i, j, k; - - for (i = 0; i < PARAMS_NBAR; i++) { - for (j = 0; j < PARAMS_NBAR; j++) { - out[i * PARAMS_NBAR + j] = 0; - for (k = 0; k < PARAMS_N; k++) { - out[i * PARAMS_NBAR + j] += (uint16_t)(b[i * PARAMS_N + k] * (uint32_t)s[j * PARAMS_N + k]); - } - out[i * PARAMS_NBAR + j] = (uint32_t)(out[i * PARAMS_NBAR + j]) & ((1 << PARAMS_LOGQ) - 1); - } - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_mul_add_sb_plus_e(uint16_t *out, const uint16_t *b, const uint16_t *s, const uint16_t *e) { - // Multiply by s on the left - // Inputs: b (N x N_BAR), s (N_BAR x N), e (N_BAR x N_BAR) - // Output: out = s*b + e (N_BAR x N_BAR) - int i, j, k; - - for (k = 0; k < PARAMS_NBAR; k++) { - for (i = 0; i < PARAMS_NBAR; i++) { - out[k * PARAMS_NBAR + i] = e[k * PARAMS_NBAR + i]; - for (j = 0; j < PARAMS_N; j++) { - out[k * PARAMS_NBAR + i] += (uint16_t)(s[k * PARAMS_N + j] * (uint32_t)b[j * PARAMS_NBAR + i]); - } - out[k * PARAMS_NBAR + i] = (uint32_t)(out[k * PARAMS_NBAR + i]) & ((1 << PARAMS_LOGQ) - 1); - } - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_add(uint16_t *out, const uint16_t *a, const uint16_t *b) { - // Add a and b - // Inputs: a, b (N_BAR x N_BAR) - // Output: c = a + b - - for (size_t i = 0; i < (PARAMS_NBAR * PARAMS_NBAR); i++) { - out[i] = (a[i] + b[i]) & ((1 << PARAMS_LOGQ) - 1); - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_sub(uint16_t *out, const uint16_t *a, const uint16_t *b) { - // Subtract a and b - // Inputs: a, b (N_BAR x N_BAR) - // Output: c = a - b - - for (size_t i = 0; i < (PARAMS_NBAR * PARAMS_NBAR); i++) { - out[i] = (a[i] - b[i]) & ((1 << PARAMS_LOGQ) - 1); - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_encode(uint16_t *out, const uint16_t *in) { - // Encoding - unsigned int i, j, npieces_word = 8; - unsigned int nwords = (PARAMS_NBAR * PARAMS_NBAR) / 8; - uint64_t temp, mask = ((uint64_t)1 << PARAMS_EXTRACTED_BITS) - 1; - uint16_t *pos = out; - - for (i = 0; i < nwords; i++) { - temp = 0; - for (j = 0; j < PARAMS_EXTRACTED_BITS; j++) { - temp |= ((uint64_t)((uint8_t *)in)[i * PARAMS_EXTRACTED_BITS + j]) << (8 * j); - } - for (j = 0; j < npieces_word; j++) { - *pos = (uint16_t)((temp & mask) << (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS)); - temp >>= PARAMS_EXTRACTED_BITS; - pos++; - } - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_key_decode(uint16_t *out, const uint16_t *in) { - // Decoding - unsigned int i, j, index = 0, npieces_word = 8; - unsigned int nwords = (PARAMS_NBAR * PARAMS_NBAR) / 8; - uint16_t temp, maskex = ((uint16_t)1 << PARAMS_EXTRACTED_BITS) - 1, maskq = ((uint16_t)1 << PARAMS_LOGQ) - 1; - uint8_t *pos = (uint8_t *)out; - uint64_t templong; - - for (i = 0; i < nwords; i++) { - templong = 0; - for (j = 0; j < npieces_word; j++) { // temp = floor(in*2^{-11}+0.5) - temp = ((in[index] & maskq) + (1 << (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS - 1))) >> (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS); - templong |= ((uint64_t)(temp & maskex)) << (PARAMS_EXTRACTED_BITS * j); - index++; - } - for (j = 0; j < PARAMS_EXTRACTED_BITS; j++) { - pos[i * PARAMS_EXTRACTED_BITS + j] = (templong >> (8 * j)) & 0xFF; - } - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_pack(uint8_t *out, size_t outlen, const uint16_t *in, size_t inlen, uint8_t lsb) { - // Pack the input uint16 vector into a char output vector, copying lsb bits from each input element. - // If inlen * lsb / 8 > outlen, only outlen * 8 bits are copied. - memset(out, 0, outlen); - - size_t i = 0; // whole bytes already filled in - size_t j = 0; // whole uint16_t already copied - uint16_t w = 0; // the leftover, not yet copied - uint8_t bits = 0; // the number of lsb in w - - while (i < outlen && (j < inlen || ((j == inlen) && (bits > 0)))) { - /* - in: | | |********|********| - ^ - j - w : | ****| - ^ - bits - out:|**|**|**|**|**|**|**|**|* | - ^^ - ib - */ - uint8_t b = 0; // bits in out[i] already filled in - while (b < 8) { - int nbits = min(8 - b, bits); - uint16_t mask = (1 << nbits) - 1; - uint8_t t = (uint8_t) ((w >> (bits - nbits)) & mask); // the bits to copy from w to out - out[i] = out[i] + (t << (8 - b - nbits)); - b += (uint8_t) nbits; - bits -= (uint8_t) nbits; - w &= ~(mask << bits); // not strictly necessary; mostly for debugging - - if (bits == 0) { - if (j < inlen) { - w = in[j]; - bits = lsb; - j++; - } else { - break; // the input vector is exhausted - } - } - } - if (b == 8) { // out[i] is filled in - i++; - } - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_unpack(uint16_t *out, size_t outlen, const uint8_t *in, size_t inlen, uint8_t lsb) { - // Unpack the input char vector into a uint16_t output vector, copying lsb bits - // for each output element from input. outlen must be at least ceil(inlen * 8 / lsb). - memset(out, 0, outlen * sizeof(uint16_t)); - - size_t i = 0; // whole uint16_t already filled in - size_t j = 0; // whole bytes already copied - uint8_t w = 0; // the leftover, not yet copied - uint8_t bits = 0; // the number of lsb bits of w - - while (i < outlen && (j < inlen || ((j == inlen) && (bits > 0)))) { - /* - in: | | | | | | |**|**|... - ^ - j - w : | *| - ^ - bits - out:| *****| *****| *** | |... - ^ ^ - i b - */ - uint8_t b = 0; // bits in out[i] already filled in - while (b < lsb) { - int nbits = min(lsb - b, bits); - uint16_t mask = (1 << nbits) - 1; - uint8_t t = (w >> (bits - nbits)) & mask; // the bits to copy from w to out - out[i] = out[i] + (t << (lsb - b - nbits)); - b += (uint8_t) nbits; - bits -= (uint8_t) nbits; - w &= ~(mask << bits); // not strictly necessary; mostly for debugging - - if (bits == 0) { - if (j < inlen) { - w = in[j]; - bits = 8; - j++; - } else { - break; // the input vector is exhausted - } - } - } - if (b == lsb) { // out[i] is filled in - i++; - } - } -} - - -int8_t PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_verify(const uint16_t *a, const uint16_t *b, size_t len) { - // Compare two arrays in constant time. - // Returns 0 if the byte arrays are equal, -1 otherwise. - uint16_t r = 0; - - for (size_t i = 0; i < len; i++) { - r |= a[i] ^ b[i]; - } - - r = (-(int16_t)(r >> 1) | -(int16_t)(r & 1)) >> (8 * sizeof(uint16_t) -1); - return (int8_t)r; -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_ct_select(uint8_t *r, const uint8_t *a, const uint8_t *b, size_t len, int8_t selector) { - // Select one of the two input arrays to be moved to r - // If (selector == 0) then load r with a, else if (selector == -1) load r with b - - for (size_t i = 0; i < len; i++) { - r[i] = (~selector & a[i]) | (selector & b[i]); - } -} - - -void PQCLEAN_FRODOKEM640SHAKE_CLEAN_clear_bytes(uint8_t *mem, size_t n) { - // Clear 8-bit bytes from memory. "n" indicates the number of bytes to be zeroed. - // This function uses the volatile type qualifier to inform the compiler not to optimize out the memory clearing. - volatile uint8_t *v = mem; - - for (size_t i = 0; i < n; i++) { - v[i] = 0; - } -} diff --git a/crypto_kem/frodo/frodokem640shake/opt/LICENSE b/crypto_kem/frodo/frodokem640shake/opt/LICENSE deleted file mode 100644 index 5cf7c8db..00000000 --- a/crypto_kem/frodo/frodokem640shake/opt/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/crypto_kem/frodo/frodokem640shake/opt/Makefile.Microsoft_nmake b/crypto_kem/frodo/frodokem640shake/opt/Makefile.Microsoft_nmake deleted file mode 100644 index 9c2b165c..00000000 --- a/crypto_kem/frodo/frodokem640shake/opt/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfrodokem640shake_opt.lib -OBJECTS=kem.obj matrix_shake.obj noise.obj util.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/frodo/frodokem976shake/clean/LICENSE b/crypto_kem/frodo/frodokem976shake/clean/LICENSE deleted file mode 100644 index 5cf7c8db..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/crypto_kem/frodo/frodokem976shake/clean/Makefile.Microsoft_nmake b/crypto_kem/frodo/frodokem976shake/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 06af8af7..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfrodokem976shake_clean.lib -OBJECTS=kem.obj matrix_shake.obj noise.obj util.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/frodo/frodokem976shake/clean/api.h b/crypto_kem/frodo/frodokem976shake/clean/api.h deleted file mode 100644 index b3393fe0..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/api.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef PQCLEAN_FRODOKEM976SHAKE_CLEAN_API_H -#define PQCLEAN_FRODOKEM976SHAKE_CLEAN_API_H - -#include -#include - -#define PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_SECRETKEYBYTES 31296 // sizeof(s) + CRYPTO_PUBLICKEYBYTES + 2*PARAMS_N*PARAMS_NBAR + BYTES_PKHASH -#define PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_PUBLICKEYBYTES 15632 // sizeof(seed_A) + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 -#define PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_BYTES 24 -#define PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_CIPHERTEXTBYTES 15744 // (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 + (PARAMS_LOGQ*PARAMS_NBAR*PARAMS_NBAR)/8 - -#define PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_ALGNAME "FrodoKEM-976-SHAKE" - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_crypto_kem_keypair(uint8_t *pk, uint8_t *sk); - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk); - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk); - -#endif diff --git a/crypto_kem/frodo/frodokem976shake/clean/common.h b/crypto_kem/frodo/frodokem976shake/clean/common.h deleted file mode 100644 index eadc17c6..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/common.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef COMMON_H -#define COMMON_H - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A); -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(uint16_t *s, size_t n); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_bs(uint16_t *out, const uint16_t *b, const uint16_t *s); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sb_plus_e(uint16_t *out, const uint16_t *b, const uint16_t *s, const uint16_t *e); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_add(uint16_t *out, const uint16_t *a, const uint16_t *b); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_sub(uint16_t *out, const uint16_t *a, const uint16_t *b); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_encode(uint16_t *out, const uint16_t *in); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_decode(uint16_t *out, const uint16_t *in); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_pack(uint8_t *out, size_t outlen, const uint16_t *in, size_t inlen, uint8_t lsb); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_unpack(uint16_t *out, size_t outlen, const uint8_t *in, size_t inlen, uint8_t lsb); -int8_t PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_verify(const uint16_t *a, const uint16_t *b, size_t len); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_select(uint8_t *r, const uint8_t *a, const uint8_t *b, size_t len, int8_t selector); -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(uint8_t *mem, size_t n); -uint16_t PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(uint16_t n); -uint16_t PQCLEAN_FRODOKEM976SHAKE_CLEAN_UINT16_TO_LE(uint16_t n); - -#endif diff --git a/crypto_kem/frodo/frodokem976shake/clean/kem.c b/crypto_kem/frodo/frodokem976shake/clean/kem.c deleted file mode 100644 index ec7c3b63..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/kem.c +++ /dev/null @@ -1,237 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: Key Encapsulation Mechanism (KEM) based on Frodo -*********************************************************************************************/ - -#include -#include - -#include "fips202.h" -#include "randombytes.h" - -#include "api.h" -#include "common.h" -#include "params.h" - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_crypto_kem_keypair(uint8_t *pk, uint8_t *sk) { - // FrodoKEM's key generation - // Outputs: public key pk ( BYTES_SEED_A + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 bytes) - // secret key sk (CRYPTO_BYTES + BYTES_SEED_A + (PARAMS_LOGQ*PARAMS_N*PARAMS_NBAR)/8 + 2*PARAMS_N*PARAMS_NBAR + BYTES_PKHASH bytes) - uint8_t *pk_seedA = &pk[0]; - uint8_t *pk_b = &pk[BYTES_SEED_A]; - uint8_t *sk_s = &sk[0]; - uint8_t *sk_pk = &sk[CRYPTO_BYTES]; - uint8_t *sk_S = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES]; - uint8_t *sk_pkh = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES + 2 * PARAMS_N * PARAMS_NBAR]; - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t S[2 * PARAMS_N * PARAMS_NBAR] = {0}; // contains secret data - uint16_t *E = &S[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint8_t randomness[2 * CRYPTO_BYTES + BYTES_SEED_A]; // contains secret data via randomness_s and randomness_seedSE - uint8_t *randomness_s = &randomness[0]; // contains secret data - uint8_t *randomness_seedSE = &randomness[CRYPTO_BYTES]; // contains secret data - uint8_t *randomness_z = &randomness[2 * CRYPTO_BYTES]; - uint8_t shake_input_seedSE[1 + CRYPTO_BYTES]; // contains secret data - - // Generate the secret value s, the seed for S and E, and the seed for the seed for A. Add seed_A to the public key - randombytes(randomness, CRYPTO_BYTES + CRYPTO_BYTES + BYTES_SEED_A); - shake(pk_seedA, BYTES_SEED_A, randomness_z, BYTES_SEED_A); - - // Generate S and E, and compute B = A*S + E. Generate A on-the-fly - shake_input_seedSE[0] = 0x5F; - memcpy(&shake_input_seedSE[1], randomness_seedSE, CRYPTO_BYTES); - shake((uint8_t *)S, 2 * PARAMS_N * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSE, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < 2 * PARAMS_N * PARAMS_NBAR; i++) { - S[i] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(S[i]); - } - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(S, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(E, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_as_plus_e(B, S, E, pk); - - // Encode the second part of the public key - PQCLEAN_FRODOKEM976SHAKE_CLEAN_pack(pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, B, PARAMS_N * PARAMS_NBAR, PARAMS_LOGQ); - - // Add s, pk and S to the secret key - memcpy(sk_s, randomness_s, CRYPTO_BYTES); - memcpy(sk_pk, pk, CRYPTO_PUBLICKEYBYTES); - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - S[i] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_UINT16_TO_LE(S[i]); - } - memcpy(sk_S, S, 2 * PARAMS_N * PARAMS_NBAR); - - // Add H(pk) to the secret key - shake(sk_pkh, BYTES_PKHASH, pk, CRYPTO_PUBLICKEYBYTES); - - // Cleanup: - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)S, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)E, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(randomness, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(shake_input_seedSE, 1 + CRYPTO_BYTES); - return 0; -} - - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_crypto_kem_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk) { - // FrodoKEM's key encapsulation - const uint8_t *pk_seedA = &pk[0]; - const uint8_t *pk_b = &pk[BYTES_SEED_A]; - uint8_t *ct_c1 = &ct[0]; - uint8_t *ct_c2 = &ct[(PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8]; - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t V[PARAMS_NBAR * PARAMS_NBAR] = {0}; // contains secret data - uint16_t C[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t Bp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Sp[(2 * PARAMS_N + PARAMS_NBAR)*PARAMS_NBAR] = {0}; // contains secret data - uint16_t *Ep = &Sp[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint16_t *Epp = &Sp[2 * PARAMS_N * PARAMS_NBAR]; // contains secret data - uint8_t G2in[BYTES_PKHASH + BYTES_MU]; // contains secret data via mu - uint8_t *pkh = &G2in[0]; - uint8_t *mu = &G2in[BYTES_PKHASH]; // contains secret data - uint8_t G2out[2 * CRYPTO_BYTES]; // contains secret data - uint8_t *seedSE = &G2out[0]; // contains secret data - uint8_t *k = &G2out[CRYPTO_BYTES]; // contains secret data - uint8_t Fin[CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES]; // contains secret data via Fin_k - uint8_t *Fin_ct = &Fin[0]; - uint8_t *Fin_k = &Fin[CRYPTO_CIPHERTEXTBYTES]; // contains secret data - uint8_t shake_input_seedSE[1 + CRYPTO_BYTES]; // contains secret data - - // pkh <- G_1(pk), generate random mu, compute (seedSE || k) = G_2(pkh || mu) - shake(pkh, BYTES_PKHASH, pk, CRYPTO_PUBLICKEYBYTES); - randombytes(mu, BYTES_MU); - shake(G2out, CRYPTO_BYTES + CRYPTO_BYTES, G2in, BYTES_PKHASH + BYTES_MU); - - // Generate Sp and Ep, and compute Bp = Sp*A + Ep. Generate A on-the-fly - shake_input_seedSE[0] = 0x96; - memcpy(&shake_input_seedSE[1], seedSE, CRYPTO_BYTES); - shake((uint8_t *)Sp, (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSE, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR; i++) { - Sp[i] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(Sp[i]); - } - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(Sp, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(Ep, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sa_plus_e(Bp, Sp, Ep, pk_seedA); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_pack(ct_c1, (PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8, Bp, PARAMS_N * PARAMS_NBAR, PARAMS_LOGQ); - - // Generate Epp, and compute V = Sp*B + Epp - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(Epp, PARAMS_NBAR * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_unpack(B, PARAMS_N * PARAMS_NBAR, pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, PARAMS_LOGQ); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sb_plus_e(V, B, Sp, Epp); - - // Encode mu, and compute C = V + enc(mu) (mod q) - PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_encode(C, (uint16_t *)mu); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_add(C, V, C); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_pack(ct_c2, (PARAMS_LOGQ * PARAMS_NBAR * PARAMS_NBAR) / 8, C, PARAMS_NBAR * PARAMS_NBAR, PARAMS_LOGQ); - - // Compute ss = F(ct||KK) - memcpy(Fin_ct, ct, CRYPTO_CIPHERTEXTBYTES); - memcpy(Fin_k, k, CRYPTO_BYTES); - shake(ss, CRYPTO_BYTES, Fin, CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES); - - // Cleanup: - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)V, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)Sp, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)Ep, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)Epp, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(mu, BYTES_MU); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(G2out, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(Fin_k, CRYPTO_BYTES); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(shake_input_seedSE, 1 + CRYPTO_BYTES); - return 0; -} - - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_crypto_kem_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk) { - // FrodoKEM's key decapsulation - uint16_t B[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Bp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t W[PARAMS_NBAR * PARAMS_NBAR] = {0}; // contains secret data - uint16_t C[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t CC[PARAMS_NBAR * PARAMS_NBAR] = {0}; - uint16_t BBp[PARAMS_N * PARAMS_NBAR] = {0}; - uint16_t Sp[(2 * PARAMS_N + PARAMS_NBAR)*PARAMS_NBAR] = {0}; // contains secret data - uint16_t *Ep = &Sp[PARAMS_N * PARAMS_NBAR]; // contains secret data - uint16_t *Epp = &Sp[2 * PARAMS_N * PARAMS_NBAR]; // contains secret data - const uint8_t *ct_c1 = &ct[0]; - const uint8_t *ct_c2 = &ct[(PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8]; - const uint8_t *sk_s = &sk[0]; - const uint8_t *sk_pk = &sk[CRYPTO_BYTES]; - const uint8_t *sk_S = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES]; - uint16_t S[PARAMS_N * PARAMS_NBAR]; // contains secret data - const uint8_t *sk_pkh = &sk[CRYPTO_BYTES + CRYPTO_PUBLICKEYBYTES + 2 * PARAMS_N * PARAMS_NBAR]; - const uint8_t *pk_seedA = &sk_pk[0]; - const uint8_t *pk_b = &sk_pk[BYTES_SEED_A]; - uint8_t G2in[BYTES_PKHASH + BYTES_MU]; // contains secret data via muprime - uint8_t *pkh = &G2in[0]; - uint8_t *muprime = &G2in[BYTES_PKHASH]; // contains secret data - uint8_t G2out[2 * CRYPTO_BYTES]; // contains secret data - uint8_t *seedSEprime = &G2out[0]; // contains secret data - uint8_t *kprime = &G2out[CRYPTO_BYTES]; // contains secret data - uint8_t Fin[CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES]; // contains secret data via Fin_k - uint8_t *Fin_ct = &Fin[0]; - uint8_t *Fin_k = &Fin[CRYPTO_CIPHERTEXTBYTES]; // contains secret data - uint8_t shake_input_seedSEprime[1 + CRYPTO_BYTES]; // contains secret data - - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - S[i] = sk_S[2 * i] | (sk_S[2 * i + 1] << 8); - } - - // Compute W = C - Bp*S (mod q), and decode the randomness mu - PQCLEAN_FRODOKEM976SHAKE_CLEAN_unpack(Bp, PARAMS_N * PARAMS_NBAR, ct_c1, (PARAMS_LOGQ * PARAMS_N * PARAMS_NBAR) / 8, PARAMS_LOGQ); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_unpack(C, PARAMS_NBAR * PARAMS_NBAR, ct_c2, (PARAMS_LOGQ * PARAMS_NBAR * PARAMS_NBAR) / 8, PARAMS_LOGQ); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_bs(W, Bp, S); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sub(W, C, W); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_decode((uint16_t *)muprime, W); - - // Generate (seedSE' || k') = G_2(pkh || mu') - memcpy(pkh, sk_pkh, BYTES_PKHASH); - shake(G2out, CRYPTO_BYTES + CRYPTO_BYTES, G2in, BYTES_PKHASH + BYTES_MU); - - // Generate Sp and Ep, and compute BBp = Sp*A + Ep. Generate A on-the-fly - shake_input_seedSEprime[0] = 0x96; - memcpy(&shake_input_seedSEprime[1], seedSEprime, CRYPTO_BYTES); - shake((uint8_t *)Sp, (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR * sizeof(uint16_t), shake_input_seedSEprime, 1 + CRYPTO_BYTES); - for (size_t i = 0; i < (2 * PARAMS_N + PARAMS_NBAR) * PARAMS_NBAR; i++) { - Sp[i] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(Sp[i]); - } - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(Sp, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(Ep, PARAMS_N * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sa_plus_e(BBp, Sp, Ep, pk_seedA); - - // Generate Epp, and compute W = Sp*B + Epp - PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(Epp, PARAMS_NBAR * PARAMS_NBAR); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_unpack(B, PARAMS_N * PARAMS_NBAR, pk_b, CRYPTO_PUBLICKEYBYTES - BYTES_SEED_A, PARAMS_LOGQ); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sb_plus_e(W, B, Sp, Epp); - - // Encode mu, and compute CC = W + enc(mu') (mod q) - PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_encode(CC, (uint16_t *)muprime); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_add(CC, W, CC); - - // Prepare input to F - memcpy(Fin_ct, ct, CRYPTO_CIPHERTEXTBYTES); - - // Reducing BBp modulo q - for (size_t i = 0; i < PARAMS_N * PARAMS_NBAR; i++) { - BBp[i] = BBp[i] & ((1 << PARAMS_LOGQ) - 1); - } - - // If (Bp == BBp & C == CC) then ss = F(ct || k'), else ss = F(ct || s) - // Needs to avoid branching on secret data as per: - // Qian Guo, Thomas Johansson, Alexander Nilsson. A key-recovery timing attack on post-quantum - // primitives using the Fujisaki-Okamoto transformation and its application on FrodoKEM. In CRYPTO 2020. - int8_t selector = PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_verify(Bp, BBp, PARAMS_N * PARAMS_NBAR) | PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_verify(C, CC, PARAMS_NBAR * PARAMS_NBAR); - // If (selector == 0) then load k' to do ss = F(ct || k'), else if (selector == -1) load s to do ss = F(ct || s) - PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_select((uint8_t *)Fin_k, (uint8_t *)kprime, (uint8_t *)sk_s, CRYPTO_BYTES, selector); - shake(ss, CRYPTO_BYTES, Fin, CRYPTO_CIPHERTEXTBYTES + CRYPTO_BYTES); - - // Cleanup: - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)W, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)Sp, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)S, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)Ep, PARAMS_N * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes((uint8_t *)Epp, PARAMS_NBAR * PARAMS_NBAR * sizeof(uint16_t)); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(muprime, BYTES_MU); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(G2out, 2 * CRYPTO_BYTES); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(Fin_k, CRYPTO_BYTES); - PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(shake_input_seedSEprime, 1 + CRYPTO_BYTES); - return 0; -} diff --git a/crypto_kem/frodo/frodokem976shake/clean/matrix_shake.c b/crypto_kem/frodo/frodokem976shake/clean/matrix_shake.c deleted file mode 100644 index 81ad384d..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/matrix_shake.c +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: matrix arithmetic functions used by the KEM -*********************************************************************************************/ - -#include -#include - -#include "fips202.h" - -#include "api.h" -#include "common.h" -#include "params.h" - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A) { - // Generate-and-multiply: generate matrix A (N x N) row-wise, multiply by s on the right. - // Inputs: s, e (N x N_BAR) - // Output: out = A*s + e (N x N_BAR) - int i, j, k; - int16_t A[PARAMS_N * PARAMS_N] = {0}; - - uint8_t seed_A_separated[2 + BYTES_SEED_A]; - uint16_t *seed_A_origin = (uint16_t *)&seed_A_separated; - memcpy(&seed_A_separated[2], seed_A, BYTES_SEED_A); - for (i = 0; i < PARAMS_N; i++) { - seed_A_origin[0] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_UINT16_TO_LE((uint16_t) i); - shake128((uint8_t *)(A + i * PARAMS_N), (unsigned long long)(2 * PARAMS_N), seed_A_separated, 2 + BYTES_SEED_A); - } - for (i = 0; i < PARAMS_N * PARAMS_N; i++) { - A[i] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(A[i]); - } - memcpy(out, e, PARAMS_NBAR * PARAMS_N * sizeof(uint16_t)); - - for (i = 0; i < PARAMS_N; i++) { // Matrix multiplication-addition A*s + e - for (k = 0; k < PARAMS_NBAR; k++) { - uint16_t sum = 0; - for (j = 0; j < PARAMS_N; j++) { - sum += A[i * PARAMS_N + j] * s[k * PARAMS_N + j]; - } - out[i * PARAMS_NBAR + k] += sum; // Adding e. No need to reduce modulo 2^15, extra bits are taken care of during packing later on. - } - } - - return 1; -} - - -int PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A) { - // Generate-and-multiply: generate matrix A (N x N) column-wise, multiply by s' on the left. - // Inputs: s', e' (N_BAR x N) - // Output: out = s'*A + e' (N_BAR x N) - int i, j, k; - int16_t A[PARAMS_N * PARAMS_N] = {0}; - - uint8_t seed_A_separated[2 + BYTES_SEED_A]; - uint16_t *seed_A_origin = (uint16_t *)&seed_A_separated; - memcpy(&seed_A_separated[2], seed_A, BYTES_SEED_A); - for (i = 0; i < PARAMS_N; i++) { - seed_A_origin[0] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_UINT16_TO_LE((uint16_t) i); - shake128((uint8_t *)(A + i * PARAMS_N), (unsigned long long)(2 * PARAMS_N), seed_A_separated, 2 + BYTES_SEED_A); - } - for (i = 0; i < PARAMS_N * PARAMS_N; i++) { - A[i] = PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(A[i]); - } - memcpy(out, e, PARAMS_NBAR * PARAMS_N * sizeof(uint16_t)); - - for (i = 0; i < PARAMS_N; i++) { // Matrix multiplication-addition A*s + e - for (k = 0; k < PARAMS_NBAR; k++) { - uint16_t sum = 0; - for (j = 0; j < PARAMS_N; j++) { - sum += A[j * PARAMS_N + i] * s[k * PARAMS_N + j]; - } - out[k * PARAMS_N + i] += sum; // Adding e. No need to reduce modulo 2^15, extra bits are taken care of during packing later on. - } - } - - return 1; -} diff --git a/crypto_kem/frodo/frodokem976shake/clean/noise.c b/crypto_kem/frodo/frodokem976shake/clean/noise.c deleted file mode 100644 index 6223d7a8..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/noise.c +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: noise sampling functions -*********************************************************************************************/ - -#include - -#include "api.h" -#include "common.h" -#include "params.h" - -static const uint16_t CDF_TABLE[CDF_TABLE_LEN] = CDF_TABLE_DATA; - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_sample_n(uint16_t *s, size_t n) { - // Fills vector s with n samples from the noise distribution which requires 16 bits to sample. - // The distribution is specified by its CDF. - // Input: pseudo-random values (2*n bytes) passed in s. The input is overwritten by the output. - size_t i; - unsigned int j; - - for (i = 0; i < n; ++i) { - uint16_t sample = 0; - uint16_t prnd = s[i] >> 1; // Drop the least significant bit - uint16_t sign = s[i] & 0x1; // Pick the least significant bit - - // No need to compare with the last value. - for (j = 0; j < (unsigned int)(CDF_TABLE_LEN - 1); j++) { - // Constant time comparison: 1 if CDF_TABLE[j] < s, 0 otherwise. Uses the fact that CDF_TABLE[j] and s fit in 15 bits. - sample += (uint16_t)(CDF_TABLE[j] - prnd) >> 15; - } - // Assuming that sign is either 0 or 1, flips sample iff sign = 1 - s[i] = ((-sign) ^ sample) + sign; - } -} diff --git a/crypto_kem/frodo/frodokem976shake/clean/params.h b/crypto_kem/frodo/frodokem976shake/clean/params.h deleted file mode 100644 index 5181be70..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/params.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PARAMS_H -#define PARAMS_H - -#define CRYPTO_SECRETKEYBYTES PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_SECRETKEYBYTES -#define CRYPTO_PUBLICKEYBYTES PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_PUBLICKEYBYTES -#define CRYPTO_BYTES PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_BYTES -#define CRYPTO_CIPHERTEXTBYTES PQCLEAN_FRODOKEM976SHAKE_CLEAN_CRYPTO_CIPHERTEXTBYTES - -#define PARAMS_N 976 -#define PARAMS_NBAR 8 -#define PARAMS_LOGQ 16 -#define PARAMS_Q (1 << PARAMS_LOGQ) -#define PARAMS_EXTRACTED_BITS 3 -#define PARAMS_STRIPE_STEP 8 -#define PARAMS_PARALLEL 4 -#define BYTES_SEED_A 16 -#define BYTES_MU ((PARAMS_EXTRACTED_BITS * PARAMS_NBAR * PARAMS_NBAR) / 8) -#define BYTES_PKHASH CRYPTO_BYTES - -// Selecting SHAKE XOF function for the KEM and noise sampling -#define shake shake256 - -// CDF table -#define CDF_TABLE_DATA {5638, 15915, 23689, 28571, 31116, 32217, 32613, 32731, 32760, 32766, 32767} -#define CDF_TABLE_LEN 11 - -#endif diff --git a/crypto_kem/frodo/frodokem976shake/clean/util.c b/crypto_kem/frodo/frodokem976shake/clean/util.c deleted file mode 100644 index a710a1bf..00000000 --- a/crypto_kem/frodo/frodokem976shake/clean/util.c +++ /dev/null @@ -1,264 +0,0 @@ -/******************************************************************************************** -* FrodoKEM: Learning with Errors Key Encapsulation -* -* Abstract: additional functions for FrodoKEM -*********************************************************************************************/ - -#include -#include - -#include "api.h" -#include "common.h" -#include "params.h" - -static inline uint8_t min(uint8_t x, uint8_t y) { - if (x < y) { - return x; - } - return y; -} - -uint16_t PQCLEAN_FRODOKEM976SHAKE_CLEAN_LE_TO_UINT16(uint16_t n) { - return (((uint8_t *) &n)[0] | (((uint8_t *) &n)[1] << 8)); -} - -uint16_t PQCLEAN_FRODOKEM976SHAKE_CLEAN_UINT16_TO_LE(uint16_t n) { - uint16_t y; - uint8_t *z = (uint8_t *) &y; - z[0] = n & 0xFF; - z[1] = (n & 0xFF00) >> 8; - return y; -} - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_bs(uint16_t *out, const uint16_t *b, const uint16_t *s) { - // Multiply by s on the right - // Inputs: b (N_BAR x N), s (N x N_BAR) - // Output: out = b*s (N_BAR x N_BAR) - int i, j, k; - - for (i = 0; i < PARAMS_NBAR; i++) { - for (j = 0; j < PARAMS_NBAR; j++) { - out[i * PARAMS_NBAR + j] = 0; - for (k = 0; k < PARAMS_N; k++) { - out[i * PARAMS_NBAR + j] += (uint16_t)(b[i * PARAMS_N + k] * (uint32_t)s[j * PARAMS_N + k]); - } - out[i * PARAMS_NBAR + j] = (uint32_t)(out[i * PARAMS_NBAR + j]) & ((1 << PARAMS_LOGQ) - 1); - } - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_mul_add_sb_plus_e(uint16_t *out, const uint16_t *b, const uint16_t *s, const uint16_t *e) { - // Multiply by s on the left - // Inputs: b (N x N_BAR), s (N_BAR x N), e (N_BAR x N_BAR) - // Output: out = s*b + e (N_BAR x N_BAR) - int i, j, k; - - for (k = 0; k < PARAMS_NBAR; k++) { - for (i = 0; i < PARAMS_NBAR; i++) { - out[k * PARAMS_NBAR + i] = e[k * PARAMS_NBAR + i]; - for (j = 0; j < PARAMS_N; j++) { - out[k * PARAMS_NBAR + i] += (uint16_t)(s[k * PARAMS_N + j] * (uint32_t)b[j * PARAMS_NBAR + i]); - } - out[k * PARAMS_NBAR + i] = (uint32_t)(out[k * PARAMS_NBAR + i]) & ((1 << PARAMS_LOGQ) - 1); - } - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_add(uint16_t *out, const uint16_t *a, const uint16_t *b) { - // Add a and b - // Inputs: a, b (N_BAR x N_BAR) - // Output: c = a + b - - for (size_t i = 0; i < (PARAMS_NBAR * PARAMS_NBAR); i++) { - out[i] = (a[i] + b[i]) & ((1 << PARAMS_LOGQ) - 1); - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_sub(uint16_t *out, const uint16_t *a, const uint16_t *b) { - // Subtract a and b - // Inputs: a, b (N_BAR x N_BAR) - // Output: c = a - b - - for (size_t i = 0; i < (PARAMS_NBAR * PARAMS_NBAR); i++) { - out[i] = (a[i] - b[i]) & ((1 << PARAMS_LOGQ) - 1); - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_encode(uint16_t *out, const uint16_t *in) { - // Encoding - unsigned int i, j, npieces_word = 8; - unsigned int nwords = (PARAMS_NBAR * PARAMS_NBAR) / 8; - uint64_t temp, mask = ((uint64_t)1 << PARAMS_EXTRACTED_BITS) - 1; - uint16_t *pos = out; - - for (i = 0; i < nwords; i++) { - temp = 0; - for (j = 0; j < PARAMS_EXTRACTED_BITS; j++) { - temp |= ((uint64_t)((uint8_t *)in)[i * PARAMS_EXTRACTED_BITS + j]) << (8 * j); - } - for (j = 0; j < npieces_word; j++) { - *pos = (uint16_t)((temp & mask) << (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS)); - temp >>= PARAMS_EXTRACTED_BITS; - pos++; - } - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_key_decode(uint16_t *out, const uint16_t *in) { - // Decoding - unsigned int i, j, index = 0, npieces_word = 8; - unsigned int nwords = (PARAMS_NBAR * PARAMS_NBAR) / 8; - uint16_t temp, maskex = ((uint16_t)1 << PARAMS_EXTRACTED_BITS) - 1, maskq = ((uint16_t)1 << PARAMS_LOGQ) - 1; - uint8_t *pos = (uint8_t *)out; - uint64_t templong; - - for (i = 0; i < nwords; i++) { - templong = 0; - for (j = 0; j < npieces_word; j++) { // temp = floor(in*2^{-11}+0.5) - temp = ((in[index] & maskq) + (1 << (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS - 1))) >> (PARAMS_LOGQ - PARAMS_EXTRACTED_BITS); - templong |= ((uint64_t)(temp & maskex)) << (PARAMS_EXTRACTED_BITS * j); - index++; - } - for (j = 0; j < PARAMS_EXTRACTED_BITS; j++) { - pos[i * PARAMS_EXTRACTED_BITS + j] = (templong >> (8 * j)) & 0xFF; - } - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_pack(uint8_t *out, size_t outlen, const uint16_t *in, size_t inlen, uint8_t lsb) { - // Pack the input uint16 vector into a char output vector, copying lsb bits from each input element. - // If inlen * lsb / 8 > outlen, only outlen * 8 bits are copied. - memset(out, 0, outlen); - - size_t i = 0; // whole bytes already filled in - size_t j = 0; // whole uint16_t already copied - uint16_t w = 0; // the leftover, not yet copied - uint8_t bits = 0; // the number of lsb in w - - while (i < outlen && (j < inlen || ((j == inlen) && (bits > 0)))) { - /* - in: | | |********|********| - ^ - j - w : | ****| - ^ - bits - out:|**|**|**|**|**|**|**|**|* | - ^^ - ib - */ - uint8_t b = 0; // bits in out[i] already filled in - while (b < 8) { - int nbits = min(8 - b, bits); - uint16_t mask = (1 << nbits) - 1; - uint8_t t = (uint8_t) ((w >> (bits - nbits)) & mask); // the bits to copy from w to out - out[i] = out[i] + (t << (8 - b - nbits)); - b += (uint8_t) nbits; - bits -= (uint8_t) nbits; - w &= ~(mask << bits); // not strictly necessary; mostly for debugging - - if (bits == 0) { - if (j < inlen) { - w = in[j]; - bits = lsb; - j++; - } else { - break; // the input vector is exhausted - } - } - } - if (b == 8) { // out[i] is filled in - i++; - } - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_unpack(uint16_t *out, size_t outlen, const uint8_t *in, size_t inlen, uint8_t lsb) { - // Unpack the input char vector into a uint16_t output vector, copying lsb bits - // for each output element from input. outlen must be at least ceil(inlen * 8 / lsb). - memset(out, 0, outlen * sizeof(uint16_t)); - - size_t i = 0; // whole uint16_t already filled in - size_t j = 0; // whole bytes already copied - uint8_t w = 0; // the leftover, not yet copied - uint8_t bits = 0; // the number of lsb bits of w - - while (i < outlen && (j < inlen || ((j == inlen) && (bits > 0)))) { - /* - in: | | | | | | |**|**|... - ^ - j - w : | *| - ^ - bits - out:| *****| *****| *** | |... - ^ ^ - i b - */ - uint8_t b = 0; // bits in out[i] already filled in - while (b < lsb) { - int nbits = min(lsb - b, bits); - uint16_t mask = (1 << nbits) - 1; - uint8_t t = (w >> (bits - nbits)) & mask; // the bits to copy from w to out - out[i] = out[i] + (t << (lsb - b - nbits)); - b += (uint8_t) nbits; - bits -= (uint8_t) nbits; - w &= ~(mask << bits); // not strictly necessary; mostly for debugging - - if (bits == 0) { - if (j < inlen) { - w = in[j]; - bits = 8; - j++; - } else { - break; // the input vector is exhausted - } - } - } - if (b == lsb) { // out[i] is filled in - i++; - } - } -} - - -int8_t PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_verify(const uint16_t *a, const uint16_t *b, size_t len) { - // Compare two arrays in constant time. - // Returns 0 if the byte arrays are equal, -1 otherwise. - uint16_t r = 0; - - for (size_t i = 0; i < len; i++) { - r |= a[i] ^ b[i]; - } - - r = (-(int16_t)(r >> 1) | -(int16_t)(r & 1)) >> (8 * sizeof(uint16_t) -1); - return (int8_t)r; -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_ct_select(uint8_t *r, const uint8_t *a, const uint8_t *b, size_t len, int8_t selector) { - // Select one of the two input arrays to be moved to r - // If (selector == 0) then load r with a, else if (selector == -1) load r with b - - for (size_t i = 0; i < len; i++) { - r[i] = (~selector & a[i]) | (selector & b[i]); - } -} - - -void PQCLEAN_FRODOKEM976SHAKE_CLEAN_clear_bytes(uint8_t *mem, size_t n) { - // Clear 8-bit bytes from memory. "n" indicates the number of bytes to be zeroed. - // This function uses the volatile type qualifier to inform the compiler not to optimize out the memory clearing. - volatile uint8_t *v = mem; - - for (size_t i = 0; i < n; i++) { - v[i] = 0; - } -} diff --git a/crypto_kem/frodo/frodokem976shake/opt/LICENSE b/crypto_kem/frodo/frodokem976shake/opt/LICENSE deleted file mode 100644 index 5cf7c8db..00000000 --- a/crypto_kem/frodo/frodokem976shake/opt/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Microsoft Corporation. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/crypto_kem/frodo/frodokem976shake/opt/Makefile.Microsoft_nmake b/crypto_kem/frodo/frodokem976shake/opt/Makefile.Microsoft_nmake deleted file mode 100644 index 1f501481..00000000 --- a/crypto_kem/frodo/frodokem976shake/opt/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfrodokem976shake_opt.lib -OBJECTS=kem.obj matrix_shake.obj noise.obj util.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/kyber/kyber1024/avx2/LICENSE b/crypto_kem/kyber/kyber1024/avx2/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_kem/kyber/kyber1024/avx2/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_kem/kyber/kyber1024/clean/LICENSE b/crypto_kem/kyber/kyber1024/clean/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_kem/kyber/kyber1024/clean/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_kem/kyber/kyber1024/clean/Makefile.Microsoft_nmake b/crypto_kem/kyber/kyber1024/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 92feb67b..00000000 --- a/crypto_kem/kyber/kyber1024/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libkyber1024_clean.lib -OBJECTS=cbd.obj indcpa.obj kem.obj ntt.obj poly.obj polyvec.obj reduce.obj symmetric-shake.obj verify.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we need it for constant-time -# computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX /wd4146 - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/kyber/kyber512/avx2/LICENSE b/crypto_kem/kyber/kyber512/avx2/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_kem/kyber/kyber512/avx2/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_kem/kyber/kyber512/clean/LICENSE b/crypto_kem/kyber/kyber512/clean/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_kem/kyber/kyber512/clean/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_kem/kyber/kyber512/clean/Makefile.Microsoft_nmake b/crypto_kem/kyber/kyber512/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 61d98361..00000000 --- a/crypto_kem/kyber/kyber512/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libkyber512_clean.lib -OBJECTS=cbd.obj indcpa.obj kem.obj ntt.obj poly.obj polyvec.obj reduce.obj symmetric-shake.obj verify.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we need it for constant-time -# computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX /wd4146 - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/kyber/kyber768/avx2/LICENSE b/crypto_kem/kyber/kyber768/avx2/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_kem/kyber/kyber768/avx2/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_kem/kyber/kyber768/clean/LICENSE b/crypto_kem/kyber/kyber768/clean/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_kem/kyber/kyber768/clean/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_kem/kyber/kyber768/clean/Makefile.Microsoft_nmake b/crypto_kem/kyber/kyber768/clean/Makefile.Microsoft_nmake deleted file mode 100644 index a3c7523e..00000000 --- a/crypto_kem/kyber/kyber768/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libkyber768_clean.lib -OBJECTS=cbd.obj indcpa.obj kem.obj ntt.obj poly.obj polyvec.obj reduce.obj symmetric-shake.obj verify.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we need it for constant-time -# computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX /wd4146 - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece348864/avx/LICENSE b/crypto_kem/mceliece/mceliece348864/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece348864/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece348864/clean/LICENSE b/crypto_kem/mceliece/mceliece348864/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece348864/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece348864/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece348864/clean/Makefile.Microsoft_nmake deleted file mode 100644 index e2f17e94..00000000 --- a/crypto_kem/mceliece/mceliece348864/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece348864_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece348864/sse/LICENSE b/crypto_kem/mceliece/mceliece348864/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece348864/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece348864/sse/aes256ctr.c deleted file mode 100644 index 78849348..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE348864_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece348864/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece348864/sse/aes256ctr.h deleted file mode 100644 index 9f62b86d..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE348864_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE348864_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/sse/api.h b/crypto_kem/mceliece/mceliece348864/sse/api.h deleted file mode 100644 index d834750e..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_API_H -#define PQCLEAN_MCELIECE348864_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE348864_SSE_CRYPTO_ALGNAME "Classic McEliece 348864" -#define PQCLEAN_MCELIECE348864_SSE_CRYPTO_PUBLICKEYBYTES 261120 -#define PQCLEAN_MCELIECE348864_SSE_CRYPTO_SECRETKEYBYTES 6452 -#define PQCLEAN_MCELIECE348864_SSE_CRYPTO_CIPHERTEXTBYTES 128 -#define PQCLEAN_MCELIECE348864_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE348864_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE348864_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE348864_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/benes.c b/crypto_kem/mceliece/mceliece348864/sse/benes.c deleted file mode 100644 index d0bb0f1a..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/benes.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - This file is for Benes network related functions -*/ -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_0(uint64_t *bs, const uint64_t *cond) { - int x; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = bs[ x ] ^ bs[ x + 1 ]; - diff &= *cond++; - bs[ x ] ^= diff; - bs[ x + 1 ] ^= diff; - } -} - -static void layer_1(uint64_t *bs, const uint64_t *cond) { - int x; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = bs[ x + 0 ] ^ bs[ x + 2 ]; - diff &= cond[0]; - bs[ x + 0 ] ^= diff; - bs[ x + 2 ] ^= diff; - - diff = bs[ x + 1 ] ^ bs[ x + 3 ]; - diff &= cond[1]; - bs[ x + 1 ] ^= diff; - bs[ x + 3 ] ^= diff; - - cond += 2; - } -} - -static void layer_2(uint64_t *bs, const uint64_t *cond) { - int x; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = bs[ x + 0 ] ^ bs[ x + 4 ]; - diff &= cond[0]; - bs[ x + 0 ] ^= diff; - bs[ x + 4 ] ^= diff; - - diff = bs[ x + 1 ] ^ bs[ x + 5 ]; - diff &= cond[1]; - bs[ x + 1 ] ^= diff; - bs[ x + 5 ] ^= diff; - - diff = bs[ x + 2 ] ^ bs[ x + 6 ]; - diff &= cond[2]; - bs[ x + 2 ] ^= diff; - bs[ x + 6 ] ^= diff; - - diff = bs[ x + 3 ] ^ bs[ x + 7 ]; - diff &= cond[3]; - bs[ x + 3 ] ^= diff; - bs[ x + 7 ] ^= diff; - - cond += 4; - } -} - -static void layer_3(uint64_t *bs, const uint64_t *cond) { - int x, s; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = bs[ s + 0 ] ^ bs[ s + 8 ]; - diff &= cond[0]; - bs[ s + 0 ] ^= diff; - bs[ s + 8 ] ^= diff; - - diff = bs[ s + 1 ] ^ bs[ s + 9 ]; - diff &= cond[1]; - bs[ s + 1 ] ^= diff; - bs[ s + 9 ] ^= diff; - - diff = bs[ s + 2 ] ^ bs[ s + 10 ]; - diff &= cond[2]; - bs[ s + 2 ] ^= diff; - bs[ s + 10 ] ^= diff; - - diff = bs[ s + 3 ] ^ bs[ s + 11 ]; - diff &= cond[3]; - bs[ s + 3 ] ^= diff; - bs[ s + 11 ] ^= diff; - - cond += 4; - } - } -} - -static void layer_4(uint64_t *bs, const uint64_t *cond) { - int x, s; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = bs[ s + 0 ] ^ bs[ s + 16 ]; - diff &= cond[0]; - bs[ s + 0 ] ^= diff; - bs[ s + 16 ] ^= diff; - - diff = bs[ s + 1 ] ^ bs[ s + 17 ]; - diff &= cond[1]; - bs[ s + 1 ] ^= diff; - bs[ s + 17 ] ^= diff; - - diff = bs[ s + 2 ] ^ bs[ s + 18 ]; - diff &= cond[2]; - bs[ s + 2 ] ^= diff; - bs[ s + 18 ] ^= diff; - - diff = bs[ s + 3 ] ^ bs[ s + 19 ]; - diff &= cond[3]; - bs[ s + 3 ] ^= diff; - bs[ s + 19 ] ^= diff; - - cond += 4; - } - } -} - -static void layer_5(uint64_t *bs, const uint64_t *cond) { - int x, s; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = bs[ s + 0 ] ^ bs[ s + 32 ]; - diff &= cond[0]; - bs[ s + 0 ] ^= diff; - bs[ s + 32 ] ^= diff; - - diff = bs[ s + 1 ] ^ bs[ s + 33 ]; - diff &= cond[1]; - bs[ s + 1 ] ^= diff; - bs[ s + 33 ] ^= diff; - - diff = bs[ s + 2 ] ^ bs[ s + 34 ]; - diff &= cond[2]; - bs[ s + 2 ] ^= diff; - bs[ s + 34 ] ^= diff; - - diff = bs[ s + 3 ] ^ bs[ s + 35 ]; - diff &= cond[3]; - bs[ s + 3 ] ^= diff; - bs[ s + 35 ] ^= diff; - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: out, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE348864_SSE_load_bits(uint64_t out[][32], const unsigned char *bits) { - int i, low, block = 0; - - uint64_t cond[64]; - - // - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864_SSE_load4(bits + block * 256 + i * 4); - } - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(cond); - - for (i = 0; i < 32; i++) { - out[ block ][i] = cond[i]; - } - block++; - } - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 32; i++) { - out[ block ][i] = PQCLEAN_MCELIECE348864_SSE_load8(bits + block * 256 + i * 8); - } - block++; - } - - for (low = 4; low >= 0; low--) { - for (i = 0; i < 32; i++) { - out[ block ][i] = PQCLEAN_MCELIECE348864_SSE_load8(bits + block * 256 + i * 8); - } - block++; - } - - for (low = 5; low >= 0; low--) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864_SSE_load4(bits + block * 256 + i * 4); - } - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(cond); - - for (i = 0; i < 32; i++) { - out[ block ][i] = cond[i]; - } - block++; - } -} - -/* input: r, sequence of bits to be permuted */ -/* cond, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE348864_SSE_benes(uint64_t *r, uint64_t cond[][32], int rev) { - int block, inc; - - uint64_t *bs = r; - - // - - if (rev == 0) { - block = 0; - inc = 1; - } else { - block = 22; - inc = -1; - } - - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(bs); - - layer_0(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_5(bs, cond[ block ]); - block += inc; - - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(bs); - - layer_0(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_5(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_0(bs, cond[ block ]); - block += inc; - - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(bs); - - layer_5(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_0(bs, cond[ block ]); - //block += inc; - - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(bs); -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/benes.h b/crypto_kem/mceliece/mceliece348864/sse/benes.h deleted file mode 100644 index 267744be..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/benes.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_BENES_H -#define PQCLEAN_MCELIECE348864_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "gf.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864_SSE_load_bits(uint64_t /*out*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE348864_SSE_benes(uint64_t * /*r*/, uint64_t /*cond*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/bm.c b/crypto_kem/mceliece/mceliece348864/sse/bm.c deleted file mode 100644 index e3257e44..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/bm.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" -#include "util.h" -#include "vec.h" -#include "vec128.h" - -#include -#include - -extern void PQCLEAN_MCELIECE348864_SSE_update_asm(void *, gf, int); -extern gf PQCLEAN_MCELIECE348864_SSE_vec_reduce_asm(uint64_t *); - -static inline uint64_t mask_nonzero(gf a) { - uint64_t ret = a; - - ret -= 1; - ret >>= 63; - ret -= 1; - - return ret; -} - -static inline uint64_t mask_leq(uint16_t a, uint16_t b) { - uint64_t a_tmp = a; - uint64_t b_tmp = b; - uint64_t ret = b_tmp - a_tmp; - - ret >>= 63; - ret -= 1; - - return ret; -} - -static void vec_cmov(uint64_t out[][2], uint64_t mask) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i][0] = (out[i][0] & ~mask) | (out[i][1] & mask); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE348864_SSE_vec128_or(PQCLEAN_MCELIECE348864_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE348864_SSE_vec128_sll_2x(PQCLEAN_MCELIECE348864_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE348864_SSE_vec128_or(PQCLEAN_MCELIECE348864_SSE_vec128_srl_2x(PQCLEAN_MCELIECE348864_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE348864_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < GFBITS; i++) { - buf[i] = in[i]; - } - for (i = GFBITS; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE348864_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE348864_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE348864_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE348864_SSE_bm(uint64_t out[ GFBITS ], vec128 in[ GFBITS ]) { - uint16_t i; - uint16_t N, L; - - uint64_t prod[ GFBITS ]; - uint64_t in_tmp[ GFBITS ]; - - uint64_t db[ GFBITS ][ 2 ]; - uint64_t BC_tmp[ GFBITS ][ 2 ]; - uint64_t BC[ GFBITS ][ 2 ]; - - uint64_t mask, t; - - gf d, b, c0 = 1; - - gf coefs[SYS_T * 2]; - - // init - - BC[0][1] = 0; - BC[0][0] = 1; - BC[0][0] <<= 63; - - for (i = 1; i < GFBITS; i++) { - BC[i][0] = BC[i][1] = 0; - } - - b = 1; - L = 0; - - // - - get_coefs(coefs, in); - - for (i = 0; i < GFBITS; i++) { - in_tmp[i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - // computing d - - PQCLEAN_MCELIECE348864_SSE_vec_mul_asm(prod, in_tmp, &BC[0][1], 16); - - PQCLEAN_MCELIECE348864_SSE_update_asm(in_tmp, coefs[N], 8); - - d = PQCLEAN_MCELIECE348864_SSE_vec_reduce_asm(prod); - - t = PQCLEAN_MCELIECE348864_SSE_gf_mul2(c0, coefs[N], b); - - d ^= t & 0xFFFFFFFF; - - // 3 cases - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - db[i][0] = (d >> i) & 1; - db[i][0] = -db[i][0]; - db[i][1] = (b >> i) & 1; - db[i][1] = -db[i][1]; - } - - PQCLEAN_MCELIECE348864_SSE_vec128_mul((vec128 *) BC_tmp, (vec128 *) db, (vec128 *) BC); - - vec_cmov(BC, mask); - - PQCLEAN_MCELIECE348864_SSE_update_asm(BC, mask & c0, 16); - - for (i = 0; i < GFBITS; i++) { - BC[i][1] = BC_tmp[i][0] ^ BC_tmp[i][1]; - } - - c0 = t >> 32; - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - - } - - c0 = PQCLEAN_MCELIECE348864_SSE_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = (c0 >> i) & 1; - out[i] = -out[i]; - } - - PQCLEAN_MCELIECE348864_SSE_vec_mul_asm(out, out, &BC[0][1], 16); -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/bm.h b/crypto_kem/mceliece/mceliece348864/sse/bm.h deleted file mode 100644 index 9430fe2d..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/bm.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_BM_H -#define PQCLEAN_MCELIECE348864_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864_SSE_bm(uint64_t *out, vec128 *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/consts.S b/crypto_kem/mceliece/mceliece348864/sse/consts.S deleted file mode 100644 index ff080b2f..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE348864_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE348864_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE348864_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE348864_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE348864_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE348864_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE348864_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE348864_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE348864_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE348864_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE348864_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE348864_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE348864_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE348864_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE348864_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE348864_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE348864_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE348864_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE348864_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE348864_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE348864_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE348864_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE348864_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE348864_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece348864/sse/consts.inc b/crypto_kem/mceliece/mceliece348864/sse/consts.inc deleted file mode 100644 index 87b50f73..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/consts.inc +++ /dev/null @@ -1,448 +0,0 @@ -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00F0FF0F00F0FF0, 0xF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF00FF00FF0, 0x0FF00FF00FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA5555AAAA5555AA, 0xAA5555AAAA5555AA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00F0FF0F00F0FF0, 0xF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCC33CC3333CC33CC, 0xCC33CC3333CC33CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CC33CC33CC33CC, 0x33CC33CC33CC33CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5A5A5A5A5A5A5A5A, 0x5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00F0FF0F00F0FF0, 0xF00F0FF0F00F0FF0), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3C3C3C3C3C3C3C3C, 0x3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555AAAA5555AAAA, 0xAAAA5555AAAA5555), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCC3333CCCC3333CC, 0xCC3333CCCC3333CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33CC33CC33CC33C, 0xC33CC33CC33CC33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55555555AAAAAAAA, 0x55555555AAAAAAAA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33333333CCCCCCCC, 0x33333333CCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FFFF00FF00, 0xFF00FF0000FF00FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFFFFFF0000, 0x0000FFFFFFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0xF0F00F0F0F0FF0F0), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA5555AA55AA, 0x55AA55AAAA55AA55), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCC33CC3333CC33CC, 0xCC33CC3333CC33CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55555555AAAAAAAA, 0x55555555AAAAAAAA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF0000FF00FFFF00, 0xFF0000FF00FFFF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC33CC3C33CC33C, 0xC33CC33C3CC33CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555AAAA5555AAAA, 0xAAAA5555AAAA5555), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF00FF00FF0, 0xF00FF00FF00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC33333333CCCC, 0x3333CCCCCCCC3333), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33CC33CC33CC33C, 0xC33CC33CC33CC33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA5555AA55AA, 0x55AA55AAAA55AA55), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CC33CCCC33CC33, 0x33CC33CCCC33CC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCC3333CC33CCCC33, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55555555AAAAAAAA, 0x55555555AAAAAAAA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF00FF0000FF, 0x00FFFF00FF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC33CC3C33CC33C, 0xC33CC33C3CC33CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555AAAA5555AAAA, 0xAAAA5555AAAA5555), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF00FF00FF0, 0xF00FF00FF00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCCCCCC3333, 0xCCCC33333333CCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33CC33CC33CC33C, 0xC33CC33CC33CC33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA5A5A5A55A5A5A5A, 0xA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5A5A5A5AA5A5A5A5, 0x5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCC3333CC33CCCC33, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5A5A5A5AA5A5A5A5, 0x5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCC3333CC33CCCC33, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA5A5A5A55A5A5A5A, 0xA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, diff --git a/crypto_kem/mceliece/mceliece348864/sse/controlbits.c b/crypto_kem/mceliece/mceliece348864/sse/controlbits.c deleted file mode 100644 index 0908baf7..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE348864_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE348864_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE348864_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE348864_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/controlbits.h b/crypto_kem/mceliece/mceliece348864/sse/controlbits.h deleted file mode 100644 index b32ba7b7..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE348864_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE348864_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE348864_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece348864/sse/crypto_hash.h deleted file mode 100644 index c69e5f3c..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE348864_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/sse/decrypt.c b/crypto_kem/mceliece/mceliece348864/sse/decrypt.c deleted file mode 100644 index 653bd005..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/decrypt.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - uint64_t irr_int[ GFBITS ]; - vec128 eval[32][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE348864_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864_SSE_fft(eval, irr_int); - - for (i = 0; i < 32; i++) { - PQCLEAN_MCELIECE348864_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE348864_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 32; i++) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864_SSE_vec128_inv(tmp, inv[31]); - - for (i = 30; i >= 0; i--) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 32; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE348864_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - uint8_t r[ 512 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 512; i++) { - r[i] = 0; - } - - for (i = 0; i < 32; i++) { - recv[i] = PQCLEAN_MCELIECE348864_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 32; i++) { - v[0] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE348864_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE348864_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 32; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE348864_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 32; i++) { - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE348864_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE348864_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u32( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint64_t synd_cmp(vec128 s0[ GFBITS ], vec128 s1[ GFBITS ]) { - int i; - vec128 diff; - - diff = PQCLEAN_MCELIECE348864_SSE_vec128_xor(s0[0], s1[0]); - - for (i = 1; i < GFBITS; i++) { - diff = PQCLEAN_MCELIECE348864_SSE_vec128_or(diff, PQCLEAN_MCELIECE348864_SSE_vec128_xor(s0[i], s1[i])); - } - - return PQCLEAN_MCELIECE348864_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE348864_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 32 ][ GFBITS ]; - vec128 scaled[ 32 ][ GFBITS ]; - vec128 eval[ 32 ][ GFBITS ]; - - vec128 error[ 32 ]; - - vec128 s_priv[ GFBITS ]; - vec128 s_priv_cmp[ GFBITS ]; - - uint64_t locator[ GFBITS ]; - - vec128 recv[ 32 ]; - vec128 allone; - - uint64_t bits_int[23][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE348864_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE348864_SSE_benes((uint64_t *) recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - - PQCLEAN_MCELIECE348864_SSE_fft_tr(s_priv, scaled); - - PQCLEAN_MCELIECE348864_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE348864_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE348864_SSE_vec128_setbits(1); - - for (i = 0; i < 32; i++) { - error[i] = PQCLEAN_MCELIECE348864_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE348864_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE348864_SSE_benes((uint64_t *) error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/decrypt.h b/crypto_kem/mceliece/mceliece348864/sse/decrypt.h deleted file mode 100644 index 91fa2f4b..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE348864_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE348864_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/encrypt.c b/crypto_kem/mceliece/mceliece348864/sse/encrypt.c deleted file mode 100644 index ca5fa765..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/encrypt.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "gf.h" -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE348864_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind_[ SYS_T * 2 ]; - uint16_t ind[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind_, sizeof(ind_)); - - for (i = 0; i < SYS_T * 2; i++) { - ind_[i] &= GFMASK; - } - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind_[i] < SYS_N) { - ind[ count++ ] = ind_[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE348864_SSE_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -void PQCLEAN_MCELIECE348864_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - PQCLEAN_MCELIECE348864_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/encrypt.h b/crypto_kem/mceliece/mceliece348864/sse/encrypt.h deleted file mode 100644 index bdc07823..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE348864_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE348864_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/fft.c b/crypto_kem/mceliece/mceliece348864/sse/fft.c deleted file mode 100644 index c8b1b23f..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/fft.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "vec.h" -#include "vec128.h" - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(uint64_t *in) { - int i, j, k; - - const uint64_t mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const uint64_t s[5][GFBITS] = { -#include "scalars.inc" - }; - - // - - for (j = 0; j <= 4; j++) { - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[i] ^= (in[i] & mask[k][0]) >> (1 << k); - in[i] ^= (in[i] & mask[k][1]) >> (1 << k); - } - } - - PQCLEAN_MCELIECE348864_SSE_vec_mul(in, in, s[j]); // scaling - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const uint64_t *in) { - int i, j, k, s, b; - - uint64_t t0, t1; - - const vec128 consts[ 32 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 0; - - const uint8_t reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - // boradcast - - vec128 tmp[ GFBITS ]; - vec128 x[ GFBITS ], y[ GFBITS ]; - - for (j = 0; j < 64; j += 4) { - for (i = 0; i < GFBITS; i++) { - t0 = (in[i] >> reversal[j + 0]) & 1; - t0 = -t0; - t1 = (in[i] >> reversal[j + 2]) & 1; - t1 = -t1; - - out[j / 2 + 0][i] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(t0, t1); - - t0 = (in[i] >> reversal[j + 1]) & 1; - t0 = -t0; - t1 = (in[i] >> reversal[j + 3]) & 1; - t1 = -t1; - - out[j / 2 + 1][i] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(t0, t1); - } - } - - // - - - for (i = 0; i < 32; i += 2) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tmp, out[i + 1], consts[ 0 ]); - - for (b = 0; b < GFBITS; b++) { - out[i + 0][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[i + 1][b] ^= out[i + 0][b]; - } - - for (b = 0; b < GFBITS; b++) { - x[b] = PQCLEAN_MCELIECE348864_SSE_vec128_unpack_low(out[i + 0][b], out[i + 1][b]); - } - for (b = 0; b < GFBITS; b++) { - y[b] = PQCLEAN_MCELIECE348864_SSE_vec128_unpack_high(out[i + 0][b], out[i + 1][b]); - } - - for (b = 0; b < GFBITS; b++) { - out[i + 0][b] = x[b]; - } - for (b = 0; b < GFBITS; b++) { - out[i + 1][b] = y[b]; - } - } - - consts_ptr += 1; - - for (i = 0; i <= 4; i++) { - s = 1 << i; - - for (j = 0; j < 32; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += s; - } - - // adding the part contributed by x^64 - - vec128 powers[32][GFBITS] = { -#include "powers.inc" - }; - - for (i = 0; i < 32; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } -} - -void PQCLEAN_MCELIECE348864_SSE_fft(vec128 out[][ GFBITS ], uint64_t *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/fft.h b/crypto_kem/mceliece/mceliece348864/sse/fft.h deleted file mode 100644 index 4fecb38b..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/fft.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_FFT_H -#define PQCLEAN_MCELIECE348864_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864_SSE_fft(vec128 /*out*/[][GFBITS], uint64_t * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/fft_tr.c b/crypto_kem/mceliece/mceliece348864/sse/fft_tr.c deleted file mode 100644 index 74c79430..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/fft_tr.c +++ /dev/null @@ -1,312 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" -#include "vec.h" -#include "vec128.h" - -#include - -static void radix_conversions_tr(vec128 in[ GFBITS ]) { - int i, j, k; - - const vec128 mask[10] = { - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - uint64_t v0, v1; - - // - - for (j = 5; j >= 0; j--) { - - if (j < 5) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(in, in, s[j]); - } - - for (i = 0; i < GFBITS; i++) { - for (k = j; k <= 4; k++) { - in[i] ^= PQCLEAN_MCELIECE348864_SSE_vec128_sll_2x(in[i] & mask[2 * k + 0], 1 << k); - in[i] ^= PQCLEAN_MCELIECE348864_SSE_vec128_sll_2x(in[i] & mask[2 * k + 1], 1 << k); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[i], 0); - v1 = PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[i], 1); - - v1 ^= v0 >> 32; - v1 ^= v1 << 32; - - in[i] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(v0, v1); - } - } -} - -static void butterflies_tr(vec128 out[ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - uint64_t t[ GFBITS ]; - uint64_t pre[6][ GFBITS ]; - - uint64_t out64[2][GFBITS]; - - vec128 p2[ 6 ]; - vec128 buf[64]; - vec128 tt[ GFBITS ]; - vec128 x[ GFBITS ], y[ GFBITS ]; - - const vec128 consts[ 32 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 32; - - const uint8_t reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {8, 1300, 3408, 1354, 2341, 1154}; - - // butterflies - - for (i = 4; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 32; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tt, in[k], consts[ consts_ptr + (k - j) ]); - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tt[b]; - } - } - } - } - - for (i = 0; i < 32; i += 2) { - for (b = 0; b < GFBITS; b++) { - x[b] = PQCLEAN_MCELIECE348864_SSE_vec128_unpack_low(in[i + 0][b], in[i + 1][b]); - } - for (b = 0; b < GFBITS; b++) { - y[b] = PQCLEAN_MCELIECE348864_SSE_vec128_unpack_high(in[i + 0][b], in[i + 1][b]); - } - - for (b = 0; b < GFBITS; b++) { - in[i + 0][b] = x[b] ^ y[b]; - } - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tt, in[i + 0], consts[ 0 ]); - for (b = 0; b < GFBITS; b++) { - in[i + 1][b] = y[b] ^ tt[b]; - } - } - - // transpose - - for (i = 0; i < GFBITS; i += 2) { - for (j = 0; j < 64; j += 4) { - buf[ reversal[j + 0] ] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 0][i + 0], 0), - PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 0][i + 1], 0)); - buf[ reversal[j + 1] ] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 1][i + 0], 0), - PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 1][i + 1], 0)); - buf[ reversal[j + 2] ] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 0][i + 0], 1), - PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 0][i + 1], 1)); - buf[ reversal[j + 3] ] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 1][i + 0], 1), - PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[j / 2 + 1][i + 1], 1)); - } - - PQCLEAN_MCELIECE348864_SSE_transpose_64x128_sp(buf); - - p2[0] = buf[32]; - buf[33] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[33], buf[32]); - p2[1] = buf[33]; - buf[35] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[35], buf[33]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[35]); - buf[34] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[34], buf[35]); - p2[2] = buf[34]; - buf[38] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[38], buf[34]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[38]); - buf[39] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[39], buf[38]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[39]); - buf[37] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[37], buf[39]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[37]); - buf[36] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[36], buf[37]); - p2[3] = buf[36]; - buf[44] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[44], buf[36]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[44]); - buf[45] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[45], buf[44]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[45]); - buf[47] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[47], buf[45]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[47]); - buf[46] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[46], buf[47]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[46]); - buf[42] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[42], buf[46]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[42]); - buf[43] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[43], buf[42]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[43]); - buf[41] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[41], buf[43]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[41]); - buf[40] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[40], buf[41]); - p2[4] = buf[40]; - buf[56] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[56], buf[40]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[56]); - buf[57] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[57], buf[56]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[57]); - buf[59] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[59], buf[57]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[59]); - buf[58] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[58], buf[59]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[58]); - buf[62] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[62], buf[58]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[62]); - buf[63] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[63], buf[62]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[63]); - buf[61] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[61], buf[63]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[61]); - buf[60] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[60], buf[61]); - p2[3] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[3], buf[60]); - buf[52] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[52], buf[60]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[52]); - buf[53] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[53], buf[52]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[53]); - buf[55] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[55], buf[53]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[55]); - buf[54] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[54], buf[55]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[54]); - buf[50] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[50], buf[54]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[50]); - buf[51] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[51], buf[50]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[51]); - buf[49] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[49], buf[51]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[49]); - buf[48] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[48], buf[49]); - p2[5] = buf[48]; - buf[16] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[16], buf[48]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[16]); - buf[17] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[17], buf[16]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[17]); - buf[19] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[19], buf[17]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[19]); - buf[18] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[18], buf[19]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[18]); - buf[22] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[22], buf[18]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[22]); - buf[23] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[23], buf[22]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[23]); - buf[21] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[21], buf[23]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[21]); - buf[20] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[20], buf[21]); - p2[3] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[3], buf[20]); - buf[28] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[28], buf[20]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[28]); - buf[29] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[29], buf[28]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[29]); - buf[31] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[31], buf[29]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[31]); - buf[30] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[30], buf[31]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[30]); - buf[26] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[26], buf[30]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[26]); - buf[27] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[27], buf[26]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[27]); - buf[25] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[25], buf[27]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[25]); - buf[24] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[24], buf[25]); - p2[4] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[4], buf[24]); - buf[8] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[8], buf[24]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[8]); - buf[9] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[9], buf[8]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[9]); - buf[11] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[11], buf[9]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[11]); - buf[10] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[10], buf[11]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[10]); - buf[14] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[14], buf[10]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[14]); - buf[15] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[15], buf[14]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[15]); - buf[13] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[13], buf[15]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[13]); - buf[12] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[12], buf[13]); - p2[3] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[3], buf[12]); - buf[4] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[4], buf[12]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[4]); - buf[5] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[5], buf[4]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[5]); - buf[7] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[7], buf[5]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[7]); - buf[6] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[6], buf[7]); - p2[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[2], buf[6]); - buf[2] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[2], buf[6]); - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[2]); - buf[3] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[3], buf[2]); - p2[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[1], buf[3]); - buf[1] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[1], buf[3]); - - p2[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(p2[0], buf[1]); - buf[0] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(buf[0], buf[1]); - - for (j = 0; j < 6; j++) { - pre[j][i + 0] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(p2[j], 0); - pre[j][i + 1] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(p2[j], 1); - } - - out64[0][i + 0] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(buf[0], 0); - out64[0][i + 1] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(buf[0], 1); - } - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = (beta[0] >> j) & 1; - t[j] = -t[j]; - } - - PQCLEAN_MCELIECE348864_SSE_vec_mul(out64[1], pre[0], t); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - t[j] = (beta[i] >> j) & 1; - t[j] = -t[j]; - } - - PQCLEAN_MCELIECE348864_SSE_vec_mul(t, pre[i], t); - PQCLEAN_MCELIECE348864_SSE_vec_add(out64[1], out64[1], t); - } - - for (b = 0; b < GFBITS; b++) { - out[b] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(out64[0][b], out64[1][b]); - } -} - -void PQCLEAN_MCELIECE348864_SSE_fft_tr(vec128 out[GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/fft_tr.h b/crypto_kem/mceliece/mceliece348864/sse/fft_tr.h deleted file mode 100644 index 92445640..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/fft_tr.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE348864_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864_SSE_fft_tr(vec128 /*out*/[GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/gf.c b/crypto_kem/mceliece/mceliece348864/sse/gf.c deleted file mode 100644 index fa5f25d6..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/gf.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - This file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -gf PQCLEAN_MCELIECE348864_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 20; - - return (gf) t; -} - -gf PQCLEAN_MCELIECE348864_SSE_gf_add(gf in0, gf in1) { - return in0 ^ in1; -} - -gf PQCLEAN_MCELIECE348864_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint32_t tmp; - uint32_t t0; - uint32_t t1; - uint32_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & (1 << i))); - } - - t = tmp & 0x7FC000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - t = tmp & 0x3000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - return tmp & ((1 << GFBITS) - 1); -} - -/* input: field element in */ -/* return: in^2 */ -static inline gf gf_sq(gf in) { - const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF}; - - uint32_t x = in; - uint32_t t; - - x = (x | (x << 8)) & B[3]; - x = (x | (x << 4)) & B[2]; - x = (x | (x << 2)) & B[1]; - x = (x | (x << 1)) & B[0]; - - t = x & 0x7FC000; - x ^= t >> 9; - x ^= t >> 12; - - t = x & 0x3000; - x ^= t >> 9; - x ^= t >> 12; - - return x & ((1 << GFBITS) - 1); -} - -gf PQCLEAN_MCELIECE348864_SSE_gf_inv(gf in) { - gf tmp_11; - gf tmp_1111; - - gf out = in; - - out = gf_sq(out); - tmp_11 = PQCLEAN_MCELIECE348864_SSE_gf_mul(out, in); // 11 - - out = gf_sq(tmp_11); - out = gf_sq(out); - tmp_1111 = PQCLEAN_MCELIECE348864_SSE_gf_mul(out, tmp_11); // 1111 - - out = gf_sq(tmp_1111); - out = gf_sq(out); - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864_SSE_gf_mul(out, tmp_1111); // 11111111 - - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864_SSE_gf_mul(out, tmp_11); // 1111111111 - - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864_SSE_gf_mul(out, in); // 11111111111 - - return gf_sq(out); // 111111111110 -} - -/* input: field element den, num */ -/* return: (num/den) */ -gf PQCLEAN_MCELIECE348864_SSE_gf_frac(gf den, gf num) { - return PQCLEAN_MCELIECE348864_SSE_gf_mul(PQCLEAN_MCELIECE348864_SSE_gf_inv(den), num); -} - -/* input: in0, in1 in GF((2^m)^t)*/ -/* output: out = in0*in1 */ -void PQCLEAN_MCELIECE348864_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[ SYS_T * 2 - 1 ]; - - for (i = 0; i < SYS_T * 2 - 1; i++) { - prod[i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - for (j = 0; j < SYS_T; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE348864_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = (SYS_T - 1) * 2; i >= SYS_T; i--) { - prod[i - SYS_T + 9] ^= PQCLEAN_MCELIECE348864_SSE_gf_mul(prod[i], (gf) 877); - prod[i - SYS_T + 7] ^= PQCLEAN_MCELIECE348864_SSE_gf_mul(prod[i], (gf) 2888); - prod[i - SYS_T + 5] ^= PQCLEAN_MCELIECE348864_SSE_gf_mul(prod[i], (gf) 1781); - prod[i - SYS_T + 0] ^= PQCLEAN_MCELIECE348864_SSE_gf_mul(prod[i], (gf) 373); - } - - for (i = 0; i < SYS_T; i++) { - out[i] = prod[i]; - } -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864_SSE_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x007FC000007FC000; - tmp ^= (t >> 9) ^ (t >> 12); - - t = tmp & 0x0000300000003000; - tmp ^= (t >> 9) ^ (t >> 12); - - return tmp & 0x00000FFF00000FFF; -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/gf.h b/crypto_kem/mceliece/mceliece348864/sse/gf.h deleted file mode 100644 index 8b3254d6..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/gf.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_GF_H -#define PQCLEAN_MCELIECE348864_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE348864_SSE_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE348864_SSE_gf_add(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864_SSE_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864_SSE_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE348864_SSE_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE348864_SSE_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864_SSE_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/operations.c b/crypto_kem/mceliece/mceliece348864/sse/operations.c deleted file mode 100644 index fe43ab23..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE348864_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE348864_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE348864_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE348864_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE348864_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE348864_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE348864_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE348864_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE348864_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE348864_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE348864_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE348864_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE348864_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/params.h b/crypto_kem/mceliece/mceliece348864/sse/params.h deleted file mode 100644 index 1b23043c..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_PARAMS_H -#define PQCLEAN_MCELIECE348864_SSE_PARAMS_H - -#define GFBITS 12 -#define SYS_N 3488 -#define SYS_T 64 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/pk_gen.c b/crypto_kem/mceliece/mceliece348864/sse/pk_gen.c deleted file mode 100644 index 0d0097c3..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/pk_gen.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 32; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE348864_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 32; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE348864_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - return (int)_tzcnt_u64(in); -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 127) / 128) * 2 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask(k, ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask(k, ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE348864_SSE_transpose_64x64(buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - -int PQCLEAN_MCELIECE348864_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - uint64_t irr_int[ GFBITS ]; - - vec128 consts[32][ GFBITS ]; - vec128 eval[ 32 ][ GFBITS ]; - vec128 prod[ 32 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE348864_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE348864_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 32; i++) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864_SSE_vec128_inv(tmp, prod[31]); - - for (i = 30; i >= 0; i--) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE348864_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE348864_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS1_H - 1; j++) { - PQCLEAN_MCELIECE348864_SSE_store8(pk, mat[i][j]); - pk += 8; - } - - PQCLEAN_MCELIECE348864_SSE_store_i(pk, mat[i][j], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/pk_gen.h b/crypto_kem/mceliece/mceliece348864/sse/pk_gen.h deleted file mode 100644 index e54b9e6f..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE348864_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include "gf.h" - -int PQCLEAN_MCELIECE348864_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/powers.inc b/crypto_kem/mceliece/mceliece348864/sse/powers.inc deleted file mode 100644 index 8e15bd37..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/powers.inc +++ /dev/null @@ -1,448 +0,0 @@ -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, diff --git a/crypto_kem/mceliece/mceliece348864/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece348864/sse/scalars_2x.inc deleted file mode 100644 index 8eb78032..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/scalars_2x.inc +++ /dev/null @@ -1,70 +0,0 @@ -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xf3cfc030fc30f003, 0x000c03c0c3c0330c), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3fcf0f003c00c00c, 0xf330cffcc00f33c0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x30033cc300c0c03c, 0xccf330f00f3c0333), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xccff0f3c0f30f0c0, 0xff03fff3ff0cf0c0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0300c03ff303c3f0, 0x3cc3fcf00fcc303c), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3fff3c0ff0ccccc0, 0x0f000c0fc30303f3), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xf3fff0c00f3c3cc0, 0xcf0fc3ff333ccf3c), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x3003333fffc3c000, 0x003f3fc3c0ff333f), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0ff30fffc3fff300, 0x3cc3f0f3cf0ff00f), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffc0f300f0f0cc00, 0xf3f33cc03fc30cc0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xc0cff3fccc3cfc00, 0x3cc330cfc333f33f), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xfc3c03f0f330c000, 0x3cc0303ff3c3fffc), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x000f00000000f00f, 0x0f00f00f00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00000f00f00000f0, 0xf00000000000f000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0f00000f00000f00, 0x00000f00000000f0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xf00f00f00f000000, 0x0f00f00000f00000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00f00000000000f0, 0x000f00000f00f00f), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000f00000000, 0x00f00f00f00f0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xf00000000f00f000, 0x0f00f00000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00f00f00000f0000, 0x000000000f000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000f00000f00f00, 0x00f00000000f00f0), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x000f00f00f00f000, 0x0000f00f00000f00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00f00f0000000000, 0xf00000f00000f00f), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000f00000, 0x00000f00f00f00f0), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000ff00ff0000ff, 0xff00ffffff000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000ff000000ff00, 0xff0000ffff000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xff0000ff00ff0000, 0xffff00ffff000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffff0000ff000000, 0xff00ffffffffff00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00ff00ff00ff0000, 0x00000000ff00ff00), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000ffffff000000, 0xffffffff00ff0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00ffff00ff000000, 0x00ffffff00ff0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffffff0000ff0000, 0xffff00ffff00ffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffff00ffff00ff00, 0xffff0000ffffffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000ff0000000000, 0xff00000000ff0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffffff00ff000000, 0x000000ff00ff00ff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00ff000000000000, 0x00ff00ff00ffff00), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x000000000000ffff, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00000000ffff0000, 0xffff000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffff000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00000000ffff0000, 0xffff00000000ffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000ffff00000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000ffff00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00000000ffff0000, 0xffff00000000ffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000ffff00000000, 0x00000000ffff0000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffff00000000ffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x00000000ffff0000), -}, -{ - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x00000000ffffffff, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffffffff00000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffffffff00000000, 0x00000000ffffffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffffffff00000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffffffffffffffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0xffffffff00000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffffffffffffffff), - PQCLEAN_MCELIECE348864_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), -}, diff --git a/crypto_kem/mceliece/mceliece348864/sse/sk_gen.c b/crypto_kem/mceliece/mceliece348864/sse/sk_gen.c deleted file mode 100644 index 255182fb..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE348864_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE348864_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE348864_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE348864_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE348864_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE348864_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE348864_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE348864_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/sk_gen.h b/crypto_kem/mceliece/mceliece348864/sse/sk_gen.h deleted file mode 100644 index ca96519e..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE348864_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE348864_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE348864_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece348864/sse/syndrome_asm.S deleted file mode 100644 index 66c9efec..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/syndrome_asm.S +++ /dev/null @@ -1,740 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864_SSE_syndrome_asm -.global PQCLEAN_MCELIECE348864_SSE_syndrome_asm -_PQCLEAN_MCELIECE348864_SSE_syndrome_asm: -PQCLEAN_MCELIECE348864_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 260780 -# asm 1: add $260780,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 768 -# asm 1: mov $768,>row=int64#5 -# asm 2: mov $768,>row=%r8 -mov $768,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#2 -# asm 2: movdqu 96(ee=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#3 -# asm 2: movdqu 112(ee=%xmm2 -movdqu 112(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(ee=reg128#3 -# asm 2: movdqu 128(ee=%xmm2 -movdqu 128(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(ee=reg128#3 -# asm 2: movdqu 144(ee=%xmm2 -movdqu 144(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(ee=reg128#3 -# asm 2: movdqu 160(ee=%xmm2 -movdqu 160(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(ee=reg128#3 -# asm 2: movdqu 176(ee=%xmm2 -movdqu 176(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(ee=reg128#3 -# asm 2: movdqu 192(ee=%xmm2 -movdqu 192(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(ee=reg128#3 -# asm 2: movdqu 208(ee=%xmm2 -movdqu 208(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(ee=reg128#3 -# asm 2: movdqu 224(ee=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(ee=reg128#3 -# asm 2: movdqu 240(ee=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(ee=reg128#3 -# asm 2: movdqu 256(ee=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(ee=reg128#3 -# asm 2: movdqu 272(ee=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(ee=reg128#3 -# asm 2: movdqu 288(ee=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(ee=reg128#3 -# asm 2: movdqu 304(ee=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(ee=reg128#3 -# asm 2: movdqu 320(ee=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(ee=reg128#3 -# asm 2: movdqu 336(ee=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(ee=reg128#3 -# asm 2: movdqu 352(ee=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(ee=reg128#3 -# asm 2: movdqu 368(ee=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(ee=reg128#3 -# asm 2: movdqu 384(ee=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(ee=reg128#3 -# asm 2: movdqu 400(ee=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(ee=reg128#3 -# asm 2: movdqu 416(ee=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = *(uint32 *)(input_1 + 336) -# asm 1: movl 336(s=int64#6d -# asm 2: movl 336(s=%r9d -movl 336(%rsi),%r9d - -# qhasm: e = *(uint32 *)(input_2 + 432) -# asm 1: movl 432(e=int64#7d -# asm 2: movl 432(e=%eax -movl 432(%rdx),%eax - -# qhasm: s &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 16(ss=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#2 -# asm 2: movdqu 16(ee=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 32(ss=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#2 -# asm 2: movdqu 32(ee=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 48(ss=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#2 -# asm 2: movdqu 48(ee=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 64(ss=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#2 -# asm 2: movdqu 64(ee=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 80(ss=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#2 -# asm 2: movdqu 80(ee=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor - -void PQCLEAN_MCELIECE348864_SSE_transpose_64x64(uint64_t *in); -void PQCLEAN_MCELIECE348864_SSE_transpose_64x128_sp(vec128 *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/transpose_64x128_sp_asm.S b/crypto_kem/mceliece/mceliece348864/sse/transpose_64x128_sp_asm.S deleted file mode 100644 index b3aae490..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/transpose_64x128_sp_asm.S +++ /dev/null @@ -1,8145 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 x0 - -# qhasm: reg128 x1 - -# qhasm: reg128 x2 - -# qhasm: reg128 x3 - -# qhasm: reg128 x4 - -# qhasm: reg128 x5 - -# qhasm: reg128 x6 - -# qhasm: reg128 x7 - -# qhasm: reg128 t0 - -# qhasm: reg128 t1 - -# qhasm: reg128 v00 - -# qhasm: reg128 v01 - -# qhasm: reg128 v10 - -# qhasm: reg128 v11 - -# qhasm: reg128 mask0 - -# qhasm: reg128 mask1 - -# qhasm: reg128 mask2 - -# qhasm: reg128 mask3 - -# qhasm: reg128 mask4 - -# qhasm: reg128 mask5 - -# qhasm: enter transpose_64x128_sp_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864_SSE_transpose_64x128_sp_asm -.global PQCLEAN_MCELIECE348864_SSE_transpose_64x128_sp_asm -_PQCLEAN_MCELIECE348864_SSE_transpose_64x128_sp_asm: -PQCLEAN_MCELIECE348864_SSE_transpose_64x128_sp_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: mask0 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK5_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_0(%rip),>mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: r0 = mem64[ input_0 + 0 ] x2 -# asm 1: movddup 0(r0=reg128#7 -# asm 2: movddup 0(r0=%xmm6 -movddup 0(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 64 ] x2 -# asm 1: movddup 64(r1=reg128#8 -# asm 2: movddup 64(r1=%xmm7 -movddup 64(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 128 ] x2 -# asm 1: movddup 128(r2=reg128#9 -# asm 2: movddup 128(r2=%xmm8 -movddup 128(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 192 ] x2 -# asm 1: movddup 192(r3=reg128#10 -# asm 2: movddup 192(r3=%xmm9 -movddup 192(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 256 ] x2 -# asm 1: movddup 256(r4=reg128#11 -# asm 2: movddup 256(r4=%xmm10 -movddup 256(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 320 ] x2 -# asm 1: movddup 320(r5=reg128#12 -# asm 2: movddup 320(r5=%xmm11 -movddup 320(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 384 ] x2 -# asm 1: movddup 384(r6=reg128#13 -# asm 2: movddup 384(r6=%xmm12 -movddup 384(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 448 ] x2 -# asm 1: movddup 448(r7=reg128#14 -# asm 2: movddup 448(r7=%xmm13 -movddup 448(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 0 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 64 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 128 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 192 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 256 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 320 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 384 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 448 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 8(r0=%xmm6 -movddup 8(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 72 ] x2 -# asm 1: movddup 72(r1=reg128#8 -# asm 2: movddup 72(r1=%xmm7 -movddup 72(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 136 ] x2 -# asm 1: movddup 136(r2=reg128#9 -# asm 2: movddup 136(r2=%xmm8 -movddup 136(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 200 ] x2 -# asm 1: movddup 200(r3=reg128#10 -# asm 2: movddup 200(r3=%xmm9 -movddup 200(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 264 ] x2 -# asm 1: movddup 264(r4=reg128#11 -# asm 2: movddup 264(r4=%xmm10 -movddup 264(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 328 ] x2 -# asm 1: movddup 328(r5=reg128#12 -# asm 2: movddup 328(r5=%xmm11 -movddup 328(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 392 ] x2 -# asm 1: movddup 392(r6=reg128#13 -# asm 2: movddup 392(r6=%xmm12 -movddup 392(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 456 ] x2 -# asm 1: movddup 456(r7=reg128#14 -# asm 2: movddup 456(r7=%xmm13 -movddup 456(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 8 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 72 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 136 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 200 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 264 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 328 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 392 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 456 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 16(r0=%xmm6 -movddup 16(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 80 ] x2 -# asm 1: movddup 80(r1=reg128#8 -# asm 2: movddup 80(r1=%xmm7 -movddup 80(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 144 ] x2 -# asm 1: movddup 144(r2=reg128#9 -# asm 2: movddup 144(r2=%xmm8 -movddup 144(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 208 ] x2 -# asm 1: movddup 208(r3=reg128#10 -# asm 2: movddup 208(r3=%xmm9 -movddup 208(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 272 ] x2 -# asm 1: movddup 272(r4=reg128#11 -# asm 2: movddup 272(r4=%xmm10 -movddup 272(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 336 ] x2 -# asm 1: movddup 336(r5=reg128#12 -# asm 2: movddup 336(r5=%xmm11 -movddup 336(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 400 ] x2 -# asm 1: movddup 400(r6=reg128#13 -# asm 2: movddup 400(r6=%xmm12 -movddup 400(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 464 ] x2 -# asm 1: movddup 464(r7=reg128#14 -# asm 2: movddup 464(r7=%xmm13 -movddup 464(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 16 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 80 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 144 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 208 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 272 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 336 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 400 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 464 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 24(r0=%xmm6 -movddup 24(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 88 ] x2 -# asm 1: movddup 88(r1=reg128#8 -# asm 2: movddup 88(r1=%xmm7 -movddup 88(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 152 ] x2 -# asm 1: movddup 152(r2=reg128#9 -# asm 2: movddup 152(r2=%xmm8 -movddup 152(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 216 ] x2 -# asm 1: movddup 216(r3=reg128#10 -# asm 2: movddup 216(r3=%xmm9 -movddup 216(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 280 ] x2 -# asm 1: movddup 280(r4=reg128#11 -# asm 2: movddup 280(r4=%xmm10 -movddup 280(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 344 ] x2 -# asm 1: movddup 344(r5=reg128#12 -# asm 2: movddup 344(r5=%xmm11 -movddup 344(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 408 ] x2 -# asm 1: movddup 408(r6=reg128#13 -# asm 2: movddup 408(r6=%xmm12 -movddup 408(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 472 ] x2 -# asm 1: movddup 472(r7=reg128#14 -# asm 2: movddup 472(r7=%xmm13 -movddup 472(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 24 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 88 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 152 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 216 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 280 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 344 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 408 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 472 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 32(r0=%xmm6 -movddup 32(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 96 ] x2 -# asm 1: movddup 96(r1=reg128#8 -# asm 2: movddup 96(r1=%xmm7 -movddup 96(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 160 ] x2 -# asm 1: movddup 160(r2=reg128#9 -# asm 2: movddup 160(r2=%xmm8 -movddup 160(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 224 ] x2 -# asm 1: movddup 224(r3=reg128#10 -# asm 2: movddup 224(r3=%xmm9 -movddup 224(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 288 ] x2 -# asm 1: movddup 288(r4=reg128#11 -# asm 2: movddup 288(r4=%xmm10 -movddup 288(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 352 ] x2 -# asm 1: movddup 352(r5=reg128#12 -# asm 2: movddup 352(r5=%xmm11 -movddup 352(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 416 ] x2 -# asm 1: movddup 416(r6=reg128#13 -# asm 2: movddup 416(r6=%xmm12 -movddup 416(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 480 ] x2 -# asm 1: movddup 480(r7=reg128#14 -# asm 2: movddup 480(r7=%xmm13 -movddup 480(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 32 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 96 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 160 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 224 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 288 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 352 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 416 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 480 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 40(r0=%xmm6 -movddup 40(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 104 ] x2 -# asm 1: movddup 104(r1=reg128#8 -# asm 2: movddup 104(r1=%xmm7 -movddup 104(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 168 ] x2 -# asm 1: movddup 168(r2=reg128#9 -# asm 2: movddup 168(r2=%xmm8 -movddup 168(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 232 ] x2 -# asm 1: movddup 232(r3=reg128#10 -# asm 2: movddup 232(r3=%xmm9 -movddup 232(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 296 ] x2 -# asm 1: movddup 296(r4=reg128#11 -# asm 2: movddup 296(r4=%xmm10 -movddup 296(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 360 ] x2 -# asm 1: movddup 360(r5=reg128#12 -# asm 2: movddup 360(r5=%xmm11 -movddup 360(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 424 ] x2 -# asm 1: movddup 424(r6=reg128#13 -# asm 2: movddup 424(r6=%xmm12 -movddup 424(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 488 ] x2 -# asm 1: movddup 488(r7=reg128#14 -# asm 2: movddup 488(r7=%xmm13 -movddup 488(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 40 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 104 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 168 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 232 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 296 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 360 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 424 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 488 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 48(r0=%xmm6 -movddup 48(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 112 ] x2 -# asm 1: movddup 112(r1=reg128#8 -# asm 2: movddup 112(r1=%xmm7 -movddup 112(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 176 ] x2 -# asm 1: movddup 176(r2=reg128#9 -# asm 2: movddup 176(r2=%xmm8 -movddup 176(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 240 ] x2 -# asm 1: movddup 240(r3=reg128#10 -# asm 2: movddup 240(r3=%xmm9 -movddup 240(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 304 ] x2 -# asm 1: movddup 304(r4=reg128#11 -# asm 2: movddup 304(r4=%xmm10 -movddup 304(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 368 ] x2 -# asm 1: movddup 368(r5=reg128#12 -# asm 2: movddup 368(r5=%xmm11 -movddup 368(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 432 ] x2 -# asm 1: movddup 432(r6=reg128#13 -# asm 2: movddup 432(r6=%xmm12 -movddup 432(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 496 ] x2 -# asm 1: movddup 496(r7=reg128#14 -# asm 2: movddup 496(r7=%xmm13 -movddup 496(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 48 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 112 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 176 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 240 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 304 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 368 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 432 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 496 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 56(r0=%xmm6 -movddup 56(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 120 ] x2 -# asm 1: movddup 120(r1=reg128#8 -# asm 2: movddup 120(r1=%xmm7 -movddup 120(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 184 ] x2 -# asm 1: movddup 184(r2=reg128#9 -# asm 2: movddup 184(r2=%xmm8 -movddup 184(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 248 ] x2 -# asm 1: movddup 248(r3=reg128#10 -# asm 2: movddup 248(r3=%xmm9 -movddup 248(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 312 ] x2 -# asm 1: movddup 312(r4=reg128#11 -# asm 2: movddup 312(r4=%xmm10 -movddup 312(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 376 ] x2 -# asm 1: movddup 376(r5=reg128#12 -# asm 2: movddup 376(r5=%xmm11 -movddup 376(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 440 ] x2 -# asm 1: movddup 440(r6=reg128#13 -# asm 2: movddup 440(r6=%xmm12 -movddup 440(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 504 ] x2 -# asm 1: movddup 504(r7=reg128#14 -# asm 2: movddup 504(r7=%xmm13 -movddup 504(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#13 -# asm 2: vpor r1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#11 -# asm 2: vpor r4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#4 -# asm 2: vpor r0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#8 -# asm 2: vpor r1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#9 -# asm 2: vpor r2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#10 -# asm 2: vpor r4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#5 -# asm 2: vpor r6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm3,%rsi - -# qhasm: mem64[ input_0 + 56 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm7,%rsi - -# qhasm: mem64[ input_0 + 120 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 184 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm0,%rsi - -# qhasm: mem64[ input_0 + 248 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 312 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm2,%rsi - -# qhasm: mem64[ input_0 + 376 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm4,%rsi - -# qhasm: mem64[ input_0 + 440 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm1,%rsi - -# qhasm: mem64[ input_0 + 504 ] = buf -# asm 1: movq mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: r0 = mem64[ input_0 + 0 ] x2 -# asm 1: movddup 0(r0=reg128#7 -# asm 2: movddup 0(r0=%xmm6 -movddup 0(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 8 ] x2 -# asm 1: movddup 8(r1=reg128#8 -# asm 2: movddup 8(r1=%xmm7 -movddup 8(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 16 ] x2 -# asm 1: movddup 16(r2=reg128#9 -# asm 2: movddup 16(r2=%xmm8 -movddup 16(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 24 ] x2 -# asm 1: movddup 24(r3=reg128#10 -# asm 2: movddup 24(r3=%xmm9 -movddup 24(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 32 ] x2 -# asm 1: movddup 32(r4=reg128#11 -# asm 2: movddup 32(r4=%xmm10 -movddup 32(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 40 ] x2 -# asm 1: movddup 40(r5=reg128#12 -# asm 2: movddup 40(r5=%xmm11 -movddup 40(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 48 ] x2 -# asm 1: movddup 48(r6=reg128#13 -# asm 2: movddup 48(r6=%xmm12 -movddup 48(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 56 ] x2 -# asm 1: movddup 56(r7=reg128#14 -# asm 2: movddup 56(r7=%xmm13 -movddup 56(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 0 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 16 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 32 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 64(r0=%xmm6 -movddup 64(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 72 ] x2 -# asm 1: movddup 72(r1=reg128#8 -# asm 2: movddup 72(r1=%xmm7 -movddup 72(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 80 ] x2 -# asm 1: movddup 80(r2=reg128#9 -# asm 2: movddup 80(r2=%xmm8 -movddup 80(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 88 ] x2 -# asm 1: movddup 88(r3=reg128#10 -# asm 2: movddup 88(r3=%xmm9 -movddup 88(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 96 ] x2 -# asm 1: movddup 96(r4=reg128#11 -# asm 2: movddup 96(r4=%xmm10 -movddup 96(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 104 ] x2 -# asm 1: movddup 104(r5=reg128#12 -# asm 2: movddup 104(r5=%xmm11 -movddup 104(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 112 ] x2 -# asm 1: movddup 112(r6=reg128#13 -# asm 2: movddup 112(r6=%xmm12 -movddup 112(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 120 ] x2 -# asm 1: movddup 120(r7=reg128#14 -# asm 2: movddup 120(r7=%xmm13 -movddup 120(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 64 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 80 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 96 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 112 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 128(r0=%xmm6 -movddup 128(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 136 ] x2 -# asm 1: movddup 136(r1=reg128#8 -# asm 2: movddup 136(r1=%xmm7 -movddup 136(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 144 ] x2 -# asm 1: movddup 144(r2=reg128#9 -# asm 2: movddup 144(r2=%xmm8 -movddup 144(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 152 ] x2 -# asm 1: movddup 152(r3=reg128#10 -# asm 2: movddup 152(r3=%xmm9 -movddup 152(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 160 ] x2 -# asm 1: movddup 160(r4=reg128#11 -# asm 2: movddup 160(r4=%xmm10 -movddup 160(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 168 ] x2 -# asm 1: movddup 168(r5=reg128#12 -# asm 2: movddup 168(r5=%xmm11 -movddup 168(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 176 ] x2 -# asm 1: movddup 176(r6=reg128#13 -# asm 2: movddup 176(r6=%xmm12 -movddup 176(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 184 ] x2 -# asm 1: movddup 184(r7=reg128#14 -# asm 2: movddup 184(r7=%xmm13 -movddup 184(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 128 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 144 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 160 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 176 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 192(r0=%xmm6 -movddup 192(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 200 ] x2 -# asm 1: movddup 200(r1=reg128#8 -# asm 2: movddup 200(r1=%xmm7 -movddup 200(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 208 ] x2 -# asm 1: movddup 208(r2=reg128#9 -# asm 2: movddup 208(r2=%xmm8 -movddup 208(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 216 ] x2 -# asm 1: movddup 216(r3=reg128#10 -# asm 2: movddup 216(r3=%xmm9 -movddup 216(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 224 ] x2 -# asm 1: movddup 224(r4=reg128#11 -# asm 2: movddup 224(r4=%xmm10 -movddup 224(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 232 ] x2 -# asm 1: movddup 232(r5=reg128#12 -# asm 2: movddup 232(r5=%xmm11 -movddup 232(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 240 ] x2 -# asm 1: movddup 240(r6=reg128#13 -# asm 2: movddup 240(r6=%xmm12 -movddup 240(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 248 ] x2 -# asm 1: movddup 248(r7=reg128#14 -# asm 2: movddup 248(r7=%xmm13 -movddup 248(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 192 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 208 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 224 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 240 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 256(r0=%xmm6 -movddup 256(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 264 ] x2 -# asm 1: movddup 264(r1=reg128#8 -# asm 2: movddup 264(r1=%xmm7 -movddup 264(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 272 ] x2 -# asm 1: movddup 272(r2=reg128#9 -# asm 2: movddup 272(r2=%xmm8 -movddup 272(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 280 ] x2 -# asm 1: movddup 280(r3=reg128#10 -# asm 2: movddup 280(r3=%xmm9 -movddup 280(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 288 ] x2 -# asm 1: movddup 288(r4=reg128#11 -# asm 2: movddup 288(r4=%xmm10 -movddup 288(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 296 ] x2 -# asm 1: movddup 296(r5=reg128#12 -# asm 2: movddup 296(r5=%xmm11 -movddup 296(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 304 ] x2 -# asm 1: movddup 304(r6=reg128#13 -# asm 2: movddup 304(r6=%xmm12 -movddup 304(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 312 ] x2 -# asm 1: movddup 312(r7=reg128#14 -# asm 2: movddup 312(r7=%xmm13 -movddup 312(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 256 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 272 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 288 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 304 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 320(r0=%xmm6 -movddup 320(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 328 ] x2 -# asm 1: movddup 328(r1=reg128#8 -# asm 2: movddup 328(r1=%xmm7 -movddup 328(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 336 ] x2 -# asm 1: movddup 336(r2=reg128#9 -# asm 2: movddup 336(r2=%xmm8 -movddup 336(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 344 ] x2 -# asm 1: movddup 344(r3=reg128#10 -# asm 2: movddup 344(r3=%xmm9 -movddup 344(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 352 ] x2 -# asm 1: movddup 352(r4=reg128#11 -# asm 2: movddup 352(r4=%xmm10 -movddup 352(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 360 ] x2 -# asm 1: movddup 360(r5=reg128#12 -# asm 2: movddup 360(r5=%xmm11 -movddup 360(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 368 ] x2 -# asm 1: movddup 368(r6=reg128#13 -# asm 2: movddup 368(r6=%xmm12 -movddup 368(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 376 ] x2 -# asm 1: movddup 376(r7=reg128#14 -# asm 2: movddup 376(r7=%xmm13 -movddup 376(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 320 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 336 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 352 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 368 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 384(r0=%xmm6 -movddup 384(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 392 ] x2 -# asm 1: movddup 392(r1=reg128#8 -# asm 2: movddup 392(r1=%xmm7 -movddup 392(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 400 ] x2 -# asm 1: movddup 400(r2=reg128#9 -# asm 2: movddup 400(r2=%xmm8 -movddup 400(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 408 ] x2 -# asm 1: movddup 408(r3=reg128#10 -# asm 2: movddup 408(r3=%xmm9 -movddup 408(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 416 ] x2 -# asm 1: movddup 416(r4=reg128#11 -# asm 2: movddup 416(r4=%xmm10 -movddup 416(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 424 ] x2 -# asm 1: movddup 424(r5=reg128#12 -# asm 2: movddup 424(r5=%xmm11 -movddup 424(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 432 ] x2 -# asm 1: movddup 432(r6=reg128#13 -# asm 2: movddup 432(r6=%xmm12 -movddup 432(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 440 ] x2 -# asm 1: movddup 440(r7=reg128#14 -# asm 2: movddup 440(r7=%xmm13 -movddup 440(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 384 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 400 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 416 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 432 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 448(r0=%xmm6 -movddup 448(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 456 ] x2 -# asm 1: movddup 456(r1=reg128#8 -# asm 2: movddup 456(r1=%xmm7 -movddup 456(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 464 ] x2 -# asm 1: movddup 464(r2=reg128#9 -# asm 2: movddup 464(r2=%xmm8 -movddup 464(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 472 ] x2 -# asm 1: movddup 472(r3=reg128#10 -# asm 2: movddup 472(r3=%xmm9 -movddup 472(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 480 ] x2 -# asm 1: movddup 480(r4=reg128#11 -# asm 2: movddup 480(r4=%xmm10 -movddup 480(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 488 ] x2 -# asm 1: movddup 488(r5=reg128#12 -# asm 2: movddup 488(r5=%xmm11 -movddup 488(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 496 ] x2 -# asm 1: movddup 496(r6=reg128#13 -# asm 2: movddup 496(r6=%xmm12 -movddup 496(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 504 ] x2 -# asm 1: movddup 504(r7=reg128#14 -# asm 2: movddup 504(r7=%xmm13 -movddup 504(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#13 -# asm 2: vpor r1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#11 -# asm 2: vpor r4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#4 -# asm 2: vpor r0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#8 -# asm 2: vpor r1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#9 -# asm 2: vpor r2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#10 -# asm 2: vpor r4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#5 -# asm 2: vpor r6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#4 -# asm 2: vpunpcklqdq t0=%xmm3 -vpunpcklqdq %xmm7,%xmm3,%xmm3 - -# qhasm: mem128[ input_0 + 448 ] = t0 -# asm 1: movdqu t0=reg128#1 -# asm 2: vpunpcklqdq t0=%xmm0 -vpunpcklqdq %xmm0,%xmm8,%xmm0 - -# qhasm: mem128[ input_0 + 464 ] = t0 -# asm 1: movdqu t0=reg128#1 -# asm 2: vpunpcklqdq t0=%xmm0 -vpunpcklqdq %xmm2,%xmm9,%xmm0 - -# qhasm: mem128[ input_0 + 480 ] = t0 -# asm 1: movdqu t0=reg128#1 -# asm 2: vpunpcklqdq t0=%xmm0 -vpunpcklqdq %xmm1,%xmm4,%xmm0 - -# qhasm: mem128[ input_0 + 496 ] = t0 -# asm 1: movdqu s1=int64#2 -# asm 2: mov s1=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE348864_SSE_store2(unsigned char *dest, gf a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE348864_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE348864_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE348864_SSE_irr_load(uint64_t *out, const unsigned char *in) { - int i, j; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE348864_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - out[i] = 0; - } - - for (i = SYS_T; i >= 0; i--) { - for (j = 0; j < GFBITS; j++) { - out[j] <<= 1; - out[j] |= (irr[i] >> j) & 1; - } - } -} - -void PQCLEAN_MCELIECE348864_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE348864_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -gf PQCLEAN_MCELIECE348864_SSE_bitrev(gf a) { - a = ((a & 0x00FF) << 8) | ((a & 0xFF00) >> 8); - a = ((a & 0x0F0F) << 4) | ((a & 0xF0F0) >> 4); - a = ((a & 0x3333) << 2) | ((a & 0xCCCC) >> 2); - a = ((a & 0x5555) << 1) | ((a & 0xAAAA) >> 1); - - return a >> 4; -} - -vec128 PQCLEAN_MCELIECE348864_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE348864_SSE_vec128_set2x( PQCLEAN_MCELIECE348864_SSE_load8(in), PQCLEAN_MCELIECE348864_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE348864_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE348864_SSE_store8(out + 0, PQCLEAN_MCELIECE348864_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE348864_SSE_store8(out + 8, PQCLEAN_MCELIECE348864_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece348864/sse/util.h b/crypto_kem/mceliece/mceliece348864/sse/util.h deleted file mode 100644 index 97491b39..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/util.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_UTIL_H -#define PQCLEAN_MCELIECE348864_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "gf.h" -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE348864_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE348864_SSE_store2(unsigned char *dest, gf a); - -uint16_t PQCLEAN_MCELIECE348864_SSE_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE348864_SSE_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE348864_SSE_irr_load(uint64_t *out, const unsigned char *in); - -void PQCLEAN_MCELIECE348864_SSE_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE348864_SSE_load8(const unsigned char *in); - -gf PQCLEAN_MCELIECE348864_SSE_bitrev(gf a); - -vec128 PQCLEAN_MCELIECE348864_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE348864_SSE_store16(unsigned char *out, vec128 in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/sse/vec.c b/crypto_kem/mceliece/mceliece348864/sse/vec.c deleted file mode 100644 index 82e40b26..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/vec.c +++ /dev/null @@ -1,17 +0,0 @@ - -#include "vec.h" - -#include "params.h" - -void PQCLEAN_MCELIECE348864_SSE_vec_mul(uint64_t *h, const uint64_t *f, const uint64_t *g) { - PQCLEAN_MCELIECE348864_SSE_vec_mul_asm(h, f, g, 8); -} - -void PQCLEAN_MCELIECE348864_SSE_vec_add(uint64_t *h, const uint64_t *f, const uint64_t *g) { - int b; - - for (b = 0; b < GFBITS; b++) { - h[b] = f[b] ^ g[b]; - } -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/vec.h b/crypto_kem/mceliece/mceliece348864/sse/vec.h deleted file mode 100644 index d33258e0..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/vec.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_VEC_H -#define PQCLEAN_MCELIECE348864_SSE_VEC_H - -#include - -extern void PQCLEAN_MCELIECE348864_SSE_vec_mul_asm(uint64_t *, const uint64_t *, const uint64_t *, int); - -void PQCLEAN_MCELIECE348864_SSE_vec_mul(uint64_t *h, const uint64_t *f, const uint64_t *g); -void PQCLEAN_MCELIECE348864_SSE_vec_add(uint64_t *h, const uint64_t *f, const uint64_t *g); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/sse/vec128.c b/crypto_kem/mceliece/mceliece348864/sse/vec128.c deleted file mode 100644 index 219cb19c..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/vec128.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE348864_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE348864_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE348864_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE348864_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE348864_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE348864_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE348864_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE348864_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS]; - - result[0] = in[0] ^ in[6]; - result[1] = in[11]; - result[2] = in[1] ^ in[7]; - result[3] = in[6]; - result[4] = in[2] ^ in[11] ^ in[8]; - result[5] = in[7]; - result[6] = in[3] ^ in[9]; - result[7] = in[8]; - result[8] = in[4] ^ in[10]; - result[9] = in[9]; - result[10] = in[5] ^ in[11]; - result[11] = in[10]; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE348864_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE348864_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tmp_11, out, in); // 11 - - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(tmp_1111, out, tmp_11); // 1111 - - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(out, out, tmp_1111); // 11111111 - - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(out, out, tmp_11); // 1111111111 - - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864_SSE_vec128_mul(out, out, in); // 11111111111 - - PQCLEAN_MCELIECE348864_SSE_vec128_sq(out, out); // 111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece348864/sse/vec128.h b/crypto_kem/mceliece/mceliece348864/sse/vec128.h deleted file mode 100644 index e002e77f..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/vec128.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_SSE_VEC128_H -#define PQCLEAN_MCELIECE348864_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE348864_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE348864_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE348864_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE348864_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE348864_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE348864_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE348864_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE348864_SSE_vec128_sq(vec128 * /*out*/, const vec128 * /*in*/); -void PQCLEAN_MCELIECE348864_SSE_vec128_inv(vec128 * /*out*/, const vec128 * /*in*/); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece348864/sse/vec128_mul_asm.S deleted file mode 100644 index f9c2753b..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/vec128_mul_asm.S +++ /dev/null @@ -1,1736 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE348864_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE348864_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE348864_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#2 -# asm 2: movdqu 176(a11=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: r11 = a11 & b0 -# asm 1: vpand r11=reg128#3 -# asm 2: vpand r11=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r12 = a11 & mem128[input_2 + 16] -# asm 1: vpand 16(r12=reg128#4 -# asm 2: vpand 16(r12=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r13 = a11 & mem128[input_2 + 32] -# asm 1: vpand 32(r13=reg128#5 -# asm 2: vpand 32(r13=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r14 = a11 & mem128[input_2 + 48] -# asm 1: vpand 48(r14=reg128#6 -# asm 2: vpand 48(r14=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r15 = a11 & mem128[input_2 + 64] -# asm 1: vpand 64(r15=reg128#7 -# asm 2: vpand 64(r15=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r16 = a11 & mem128[input_2 + 80] -# asm 1: vpand 80(r16=reg128#8 -# asm 2: vpand 80(r16=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r17 = a11 & mem128[input_2 + 96] -# asm 1: vpand 96(r17=reg128#9 -# asm 2: vpand 96(r17=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r18 = a11 & mem128[input_2 + 112] -# asm 1: vpand 112(r18=reg128#10 -# asm 2: vpand 112(r18=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r19 = a11 & mem128[input_2 + 128] -# asm 1: vpand 128(r19=reg128#11 -# asm 2: vpand 128(r19=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r20 = a11 & mem128[input_2 + 144] -# asm 1: vpand 144(r20=reg128#12 -# asm 2: vpand 144(r20=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r21 = a11 & mem128[input_2 + 160] -# asm 1: vpand 160(r21=reg128#13 -# asm 2: vpand 160(r21=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r22 = a11 & mem128[input_2 + 176] -# asm 1: vpand 176(r22=reg128#2 -# asm 2: vpand 176(r22=%xmm1 -vpand 176(%rdx),%xmm1,%xmm1 - -# qhasm: r13 ^= r22 -# asm 1: pxor r10=reg128#2 -# asm 2: movdqa r10=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#14 -# asm 2: movdqu 160(a10=%xmm13 -movdqu 160(%rsi),%xmm13 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r21 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#14 -# asm 2: movdqu 144(a9=%xmm13 -movdqu 144(%rsi),%xmm13 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r20 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#14 -# asm 2: movdqu 128(a8=%xmm13 -movdqu 128(%rsi),%xmm13 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r19 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#14 -# asm 2: movdqu 112(a7=%xmm13 -movdqu 112(%rsi),%xmm13 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r18 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#14 -# asm 2: movdqu 96(a6=%xmm13 -movdqu 96(%rsi),%xmm13 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r17 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#14 -# asm 2: movdqu 80(a5=%xmm13 -movdqu 80(%rsi),%xmm13 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r16 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#14 -# asm 2: movdqu 64(a4=%xmm13 -movdqu 64(%rsi),%xmm13 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r15 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#14 -# asm 2: movdqu 48(a3=%xmm13 -movdqu 48(%rsi),%xmm13 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r14 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#14 -# asm 2: movdqu 32(a2=%xmm13 -movdqu 32(%rsi),%xmm13 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r13 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#14 -# asm 2: movdqu 16(a1=%xmm13 -movdqu 16(%rsi),%xmm13 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r12 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#14 -# asm 2: movdqu 0(a0=%xmm13 -movdqu 0(%rsi),%xmm13 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm13,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm13,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm13,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm13,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm13,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm13,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm13,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm13,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm13,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm13,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm13,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r11_stack=stack64#1 -# asm 2: movq r11_stack=608(%rsp) -movq %r11,608(%rsp) - -# qhasm: r12_stack = caller_r12 -# asm 1: movq r12_stack=stack64#2 -# asm 2: movq r12_stack=616(%rsp) -movq %r12,616(%rsp) - -# qhasm: r13_stack = caller_r13 -# asm 1: movq r13_stack=stack64#3 -# asm 2: movq r13_stack=624(%rsp) -movq %r13,624(%rsp) - -# qhasm: r14_stack = caller_r14 -# asm 1: movq r14_stack=stack64#4 -# asm 2: movq r14_stack=632(%rsp) -movq %r14,632(%rsp) - -# qhasm: r15_stack = caller_r15 -# asm 1: movq r15_stack=stack64#5 -# asm 2: movq r15_stack=640(%rsp) -movq %r15,640(%rsp) - -# qhasm: rbx_stack = caller_rbx -# asm 1: movq rbx_stack=stack64#6 -# asm 2: movq rbx_stack=648(%rsp) -movq %rbx,648(%rsp) - -# qhasm: ptr = &buf -# asm 1: leaq ptr=int64#5 -# asm 2: leaq ptr=%r8 -leaq 0(%rsp),%r8 - -# qhasm: tmp = input_3 -# asm 1: mov tmp=int64#6 -# asm 2: mov tmp=%r9 -mov %rcx,%r9 - -# qhasm: tmp *= 11 -# asm 1: imulq $11,tmp=int64#6 -# asm 2: imulq $11,tmp=%r9 -imulq $11,%r9,%r9 - -# qhasm: input_2 += tmp -# asm 1: add b11=reg128#1 -# asm 2: movddup 0(b11=%xmm0 -movddup 0(%rdx),%xmm0 - -# qhasm: input_2 -= input_3 -# asm 1: sub r16=reg128#3 -# asm 2: vpand r16=%xmm2 -vpand %xmm1,%xmm0,%xmm2 - -# qhasm: mem128[ ptr + 256 ] = r16 -# asm 1: movdqu r15=reg128#4 -# asm 2: vpand r15=%xmm3 -vpand %xmm2,%xmm0,%xmm3 - -# qhasm: a3[0] = mem64[ input_1 + 24 ] -# asm 1: pinsrq $0x0,24(r14=reg128#6 -# asm 2: vpand r14=%xmm5 -vpand %xmm4,%xmm0,%xmm5 - -# qhasm: a2[0] = mem64[ input_1 + 16 ] -# asm 1: pinsrq $0x0,16(r13=reg128#8 -# asm 2: vpand r13=%xmm7 -vpand %xmm6,%xmm0,%xmm7 - -# qhasm: a1[0] = mem64[ input_1 + 8 ] -# asm 1: pinsrq $0x0,8(r12=reg128#10 -# asm 2: vpand r12=%xmm9 -vpand %xmm8,%xmm0,%xmm9 - -# qhasm: a0[0] = mem64[ input_1 + 0 ] -# asm 1: pinsrq $0x0,0(r11=reg128#1 -# asm 2: vpand r11=%xmm0 -vpand %xmm10,%xmm0,%xmm0 - -# qhasm: b10 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b10=reg128#12 -# asm 2: movddup 0(b10=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm2,%xmm11,%xmm3 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm4,%xmm11,%xmm3 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm6,%xmm11,%xmm3 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm8,%xmm11,%xmm3 - -# qhasm: r11 ^= r -# asm 1: pxor r10=reg128#4 -# asm 2: vpand r10=%xmm3 -vpand %xmm10,%xmm11,%xmm3 - -# qhasm: b9 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b9=reg128#12 -# asm 2: movddup 0(b9=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm2,%xmm11,%xmm5 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm4,%xmm11,%xmm5 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm6,%xmm11,%xmm5 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm8,%xmm11,%xmm5 - -# qhasm: r10 ^= r -# asm 1: pxor r9=reg128#6 -# asm 2: vpand r9=%xmm5 -vpand %xmm10,%xmm11,%xmm5 - -# qhasm: b8 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b8=reg128#12 -# asm 2: movddup 0(b8=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm2,%xmm11,%xmm7 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm4,%xmm11,%xmm7 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm6,%xmm11,%xmm7 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm8,%xmm11,%xmm7 - -# qhasm: r9 ^= r -# asm 1: pxor r8=reg128#8 -# asm 2: vpand r8=%xmm7 -vpand %xmm10,%xmm11,%xmm7 - -# qhasm: b7 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b7=reg128#12 -# asm 2: movddup 0(b7=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm2,%xmm11,%xmm9 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm4,%xmm11,%xmm9 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm6,%xmm11,%xmm9 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm8,%xmm11,%xmm9 - -# qhasm: r8 ^= r -# asm 1: pxor r7=reg128#10 -# asm 2: vpand r7=%xmm9 -vpand %xmm10,%xmm11,%xmm9 - -# qhasm: b6 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b6=reg128#12 -# asm 2: movddup 0(b6=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm2,%xmm11,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm4,%xmm11,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm6,%xmm11,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm8,%xmm11,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r6=reg128#1 -# asm 2: vpand r6=%xmm0 -vpand %xmm10,%xmm11,%xmm0 - -# qhasm: b5 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b5=reg128#12 -# asm 2: movddup 0(b5=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm2,%xmm11,%xmm3 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm4,%xmm11,%xmm3 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm6,%xmm11,%xmm3 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm8,%xmm11,%xmm3 - -# qhasm: r6 ^= r -# asm 1: pxor r5=reg128#4 -# asm 2: vpand r5=%xmm3 -vpand %xmm10,%xmm11,%xmm3 - -# qhasm: b4 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b4=reg128#12 -# asm 2: movddup 0(b4=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm2,%xmm11,%xmm5 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm4,%xmm11,%xmm5 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm6,%xmm11,%xmm5 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm8,%xmm11,%xmm5 - -# qhasm: r5 ^= r -# asm 1: pxor r4=reg128#6 -# asm 2: vpand r4=%xmm5 -vpand %xmm10,%xmm11,%xmm5 - -# qhasm: b3 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b3=reg128#12 -# asm 2: movddup 0(b3=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm2,%xmm11,%xmm7 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm4,%xmm11,%xmm7 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm6,%xmm11,%xmm7 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm8,%xmm11,%xmm7 - -# qhasm: r4 ^= r -# asm 1: pxor r3=reg128#8 -# asm 2: vpand r3=%xmm7 -vpand %xmm10,%xmm11,%xmm7 - -# qhasm: b2 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b2=reg128#12 -# asm 2: movddup 0(b2=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm2,%xmm11,%xmm9 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm4,%xmm11,%xmm9 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm6,%xmm11,%xmm9 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm8,%xmm11,%xmm9 - -# qhasm: r3 ^= r -# asm 1: pxor r2=reg128#10 -# asm 2: vpand r2=%xmm9 -vpand %xmm10,%xmm11,%xmm9 - -# qhasm: b1 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b1=reg128#12 -# asm 2: movddup 0(b1=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm2,%xmm11,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm4,%xmm11,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm6,%xmm11,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm8,%xmm11,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r1=reg128#1 -# asm 2: vpand r1=%xmm0 -vpand %xmm10,%xmm11,%xmm0 - -# qhasm: b0 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b0=reg128#12 -# asm 2: movddup 0(b0=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm1,%xmm11,%xmm1 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm2,%xmm11,%xmm1 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm4,%xmm11,%xmm1 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm6,%xmm11,%xmm1 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm8,%xmm11,%xmm1 - -# qhasm: r1 ^= r -# asm 1: pxor r0=reg128#2 -# asm 2: vpand r0=%xmm1 -vpand %xmm10,%xmm11,%xmm1 - -# qhasm: mem128[ ptr + 64 ] = r4 -# asm 1: movdqu h22=int64#2 -# asm 2: movq 264(h22=%rsi -movq 264(%r8),%rsi - -# qhasm: h13 = h22 -# asm 1: mov h13=int64#3 -# asm 2: mov h13=%rdx -mov %rsi,%rdx - -# qhasm: h10 = h22 -# asm 1: mov h10=int64#2 -# asm 2: mov h10=%rsi -mov %rsi,%rsi - -# qhasm: h21 = mem64[ ptr + 248 ] -# asm 1: movq 248(h21=int64#4 -# asm 2: movq 248(h21=%rcx -movq 248(%r8),%rcx - -# qhasm: h12 = h21 -# asm 1: mov h12=int64#6 -# asm 2: mov h12=%r9 -mov %rcx,%r9 - -# qhasm: h9 = h21 -# asm 1: mov h9=int64#4 -# asm 2: mov h9=%rcx -mov %rcx,%rcx - -# qhasm: h20 = mem64[ ptr + 232 ] -# asm 1: movq 232(h20=int64#7 -# asm 2: movq 232(h20=%rax -movq 232(%r8),%rax - -# qhasm: h11 = h20 -# asm 1: mov h11=int64#8 -# asm 2: mov h11=%r10 -mov %rax,%r10 - -# qhasm: h8 = h20 -# asm 1: mov h8=int64#7 -# asm 2: mov h8=%rax -mov %rax,%rax - -# qhasm: h19 = mem64[ ptr + 216 ] -# asm 1: movq 216(h19=int64#9 -# asm 2: movq 216(h19=%r11 -movq 216(%r8),%r11 - -# qhasm: h10 ^= h19 -# asm 1: xor h7=int64#9 -# asm 2: mov h7=%r11 -mov %r11,%r11 - -# qhasm: h18 = mem64[ ptr + 200 ] -# asm 1: movq 200(h18=int64#10 -# asm 2: movq 200(h18=%r12 -movq 200(%r8),%r12 - -# qhasm: h9 ^= h18 -# asm 1: xor h6=int64#10 -# asm 2: mov h6=%r12 -mov %r12,%r12 - -# qhasm: h17 = mem64[ ptr + 184 ] -# asm 1: movq 184(h17=int64#11 -# asm 2: movq 184(h17=%r13 -movq 184(%r8),%r13 - -# qhasm: h8 ^= h17 -# asm 1: xor h5=int64#11 -# asm 2: mov h5=%r13 -mov %r13,%r13 - -# qhasm: h16 = mem64[ ptr + 168 ] -# asm 1: movq 168(h16=int64#12 -# asm 2: movq 168(h16=%r14 -movq 168(%r8),%r14 - -# qhasm: h16 ^= *(uint64 *) ( ptr + 256 ) -# asm 1: xorq 256(h4=int64#12 -# asm 2: mov h4=%r14 -mov %r14,%r14 - -# qhasm: h15 = mem64[ ptr + 152 ] -# asm 1: movq 152(h15=int64#13 -# asm 2: movq 152(h15=%r15 -movq 152(%r8),%r15 - -# qhasm: h15 ^= *(uint64 *) ( ptr + 240 ) -# asm 1: xorq 240(h3=int64#13 -# asm 2: mov h3=%r15 -mov %r15,%r15 - -# qhasm: h14 = mem64[ ptr + 136 ] -# asm 1: movq 136(h14=int64#14 -# asm 2: movq 136(h14=%rbx -movq 136(%r8),%rbx - -# qhasm: h14 ^= *(uint64 *) ( ptr + 224 ) -# asm 1: xorq 224(h2=int64#14 -# asm 2: mov h2=%rbx -mov %rbx,%rbx - -# qhasm: h13 ^= *(uint64 *) ( ptr + 120 ) -# asm 1: xorq 120(h1=int64#3 -# asm 2: mov h1=%rdx -mov %rdx,%rdx - -# qhasm: h12 ^= *(uint64 *) ( ptr + 104 ) -# asm 1: xorq 104(h0=int64#6 -# asm 2: mov h0=%r9 -mov %r9,%r9 - -# qhasm: h11 ^= *(uint64 *) ( ptr + 176 ) -# asm 1: xorq 176(caller_r11=int64#9 -# asm 2: movq caller_r11=%r11 -movq 608(%rsp),%r11 - -# qhasm: caller_r12 = r12_stack -# asm 1: movq caller_r12=int64#10 -# asm 2: movq caller_r12=%r12 -movq 616(%rsp),%r12 - -# qhasm: caller_r13 = r13_stack -# asm 1: movq caller_r13=int64#11 -# asm 2: movq caller_r13=%r13 -movq 624(%rsp),%r13 - -# qhasm: caller_r14 = r14_stack -# asm 1: movq caller_r14=int64#12 -# asm 2: movq caller_r14=%r14 -movq 632(%rsp),%r14 - -# qhasm: caller_r15 = r15_stack -# asm 1: movq caller_r15=int64#13 -# asm 2: movq caller_r15=%r15 -movq 640(%rsp),%r15 - -# qhasm: caller_rbx = rbx_stack -# asm 1: movq caller_rbx=int64#14 -# asm 2: movq caller_rbx=%rbx -movq 648(%rsp),%rbx - -# qhasm: return -add %r11,%rsp -ret diff --git a/crypto_kem/mceliece/mceliece348864/sse/vec_reduce_asm.S b/crypto_kem/mceliece/mceliece348864/sse/vec_reduce_asm.S deleted file mode 100644 index 0c9caf14..00000000 --- a/crypto_kem/mceliece/mceliece348864/sse/vec_reduce_asm.S +++ /dev/null @@ -1,356 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 t - -# qhasm: int64 c - -# qhasm: int64 r - -# qhasm: enter vec_reduce_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864_SSE_vec_reduce_asm -.global PQCLEAN_MCELIECE348864_SSE_vec_reduce_asm -_PQCLEAN_MCELIECE348864_SSE_vec_reduce_asm: -PQCLEAN_MCELIECE348864_SSE_vec_reduce_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: r = 0 -# asm 1: mov $0,>r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t = mem64[ input_0 + 88 ] -# asm 1: movq 88(t=int64#2 -# asm 2: movq 88(t=%rsi -movq 88(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 80(t=%rsi -movq 80(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 72(t=%rsi -movq 72(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 64(t=%rsi -movq 64(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 56(t=%rsi -movq 56(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 48(t=%rsi -movq 48(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 40(t=%rsi -movq 40(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 32(t=%rsi -movq 32(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 24(t=%rsi -movq 24(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 16(t=%rsi -movq 16(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 8(t=%rsi -movq 8(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#1 -# asm 2: movq 0(t=%rdi -movq 0(%rdi),%rdi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rdi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE348864_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/vec/api.h b/crypto_kem/mceliece/mceliece348864/vec/api.h deleted file mode 100644 index 5f1f8d18..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_API_H -#define PQCLEAN_MCELIECE348864_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE348864_VEC_CRYPTO_ALGNAME "Classic McEliece 348864" -#define PQCLEAN_MCELIECE348864_VEC_CRYPTO_PUBLICKEYBYTES 261120 -#define PQCLEAN_MCELIECE348864_VEC_CRYPTO_SECRETKEYBYTES 6452 -#define PQCLEAN_MCELIECE348864_VEC_CRYPTO_CIPHERTEXTBYTES 128 -#define PQCLEAN_MCELIECE348864_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE348864_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE348864_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE348864_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/benes.c b/crypto_kem/mceliece/mceliece348864/vec/benes.c deleted file mode 100644 index bd45278f..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/benes.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -/* one layer of the benes network */ -static void layer(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE348864_VEC_benes(uint64_t *r, const unsigned char *bits, int rev) { - int i; - - const unsigned char *cond_ptr; - int inc, low; - - uint64_t cond[64]; - - // - - if (rev == 0) { - inc = 256; - cond_ptr = bits; - } else { - inc = -256; - cond_ptr = bits + (2 * GFBITS - 2) * 256; - } - - // - - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(r, r); - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864_VEC_load4(cond_ptr + i * 4); - } - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(cond, cond); - layer(r, cond, low); - cond_ptr += inc; - } - - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(r, r); - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 32; i++) { - cond[i] = PQCLEAN_MCELIECE348864_VEC_load8(cond_ptr + i * 8); - } - layer(r, cond, low); - cond_ptr += inc; - } - for (low = 4; low >= 0; low--) { - for (i = 0; i < 32; i++) { - cond[i] = PQCLEAN_MCELIECE348864_VEC_load8(cond_ptr + i * 8); - } - layer(r, cond, low); - cond_ptr += inc; - } - - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(r, r); - - for (low = 5; low >= 0; low--) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864_VEC_load4(cond_ptr + i * 4); - } - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(cond, cond); - layer(r, cond, low); - cond_ptr += inc; - } - - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(r, r); -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/benes.h b/crypto_kem/mceliece/mceliece348864/vec/benes.h deleted file mode 100644 index 281c9e69..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_BENES_H -#define PQCLEAN_MCELIECE348864_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE348864_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/bm.c b/crypto_kem/mceliece/mceliece348864/vec/bm.c deleted file mode 100644 index 6a87164c..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/bm.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" -#include "util.h" - -#include - -static inline uint64_t mask_nonzero(gf a) { - uint64_t ret = a; - - ret -= 1; - ret >>= 63; - ret -= 1; - - return ret; -} - -static inline uint64_t mask_leq(uint16_t a, uint16_t b) { - uint64_t a_tmp = a; - uint64_t b_tmp = b; - uint64_t ret = b_tmp - a_tmp; - - ret >>= 63; - ret -= 1; - - return ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < GFBITS; i++) { - buf[i] = in[i]; - } - for (i = GFBITS; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static inline gf vec_reduce(const vec *in) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -static void update(vec *in, const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[i] = (in[i] >> 1) | (tmp << 63); - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE348864_VEC_bm(vec *out, vec in[][ GFBITS ]) { - uint16_t i; - uint16_t N, L; - - vec prod[ GFBITS ]; - vec in_tmp[ GFBITS ]; - - vec d_vec[ GFBITS ]; - vec b_vec[ GFBITS ]; - vec B[ GFBITS ], C[ GFBITS ]; - vec B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - vec mask, t; - - gf d, b, c0 = 1; - - gf coefs[SYS_T * 2]; - - // init - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - - C[0] = 0; - B[0] = 1; - B[0] <<= 63; - - for (i = 1; i < GFBITS; i++) { - B[i] = C[i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - in_tmp[i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - // computing d - - PQCLEAN_MCELIECE348864_VEC_vec_mul(prod, in_tmp, C); - - update(in_tmp, coefs[N]); - - d = vec_reduce(prod); - - t = PQCLEAN_MCELIECE348864_VEC_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - // 3 cases - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - d_vec[i] = PQCLEAN_MCELIECE348864_VEC_vec_setbits((d >> i) & 1); - b_vec[i] = PQCLEAN_MCELIECE348864_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE348864_VEC_vec_mul(B_tmp, d_vec, B); - PQCLEAN_MCELIECE348864_VEC_vec_mul(C_tmp, b_vec, C); - - vec_cmov(B, C, (uint16_t)mask); - update(B, mask & c0); - - for (i = 0; i < GFBITS; i++) { - C[i] = B_tmp[i] ^ C_tmp[i]; - } - - c0 = (gf)(t >> 32); - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - - } - - c0 = PQCLEAN_MCELIECE348864_VEC_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = PQCLEAN_MCELIECE348864_VEC_vec_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE348864_VEC_vec_mul(out, out, C); -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/bm.h b/crypto_kem/mceliece/mceliece348864/vec/bm.h deleted file mode 100644 index 79ffd441..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_BM_H -#define PQCLEAN_MCELIECE348864_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE348864_VEC_bm(vec * /*out*/, vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/consts.inc b/crypto_kem/mceliece/mceliece348864/vec/consts.inc deleted file mode 100644 index a728344f..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/consts.inc +++ /dev/null @@ -1,888 +0,0 @@ -//64 -{ - 0XF00F0FF0F00F0FF0, - 0XF0F00F0F0F0FF0F0, - 0X0FF00FF00FF00FF0, - 0XAA5555AAAA5555AA, - 0XF00F0FF0F00F0FF0, - 0X33CCCC33CC3333CC, - 0XFFFF0000FFFF0000, - 0XCC33CC3333CC33CC, - 0X33CC33CC33CC33CC, - 0X5A5A5A5A5A5A5A5A, - 0XFF00FF00FF00FF00, - 0XF00F0FF0F00F0FF0, -}, -//128 -{ - 0X3C3C3C3C3C3C3C3C, - 0XF0F0F0F0F0F0F0F0, - 0X5555AAAA5555AAAA, - 0XCC3333CCCC3333CC, - 0XC33CC33CC33CC33C, - 0X55555555AAAAAAAA, - 0X33333333CCCCCCCC, - 0X00FF00FFFF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0X0000000000000000, - 0X0000FFFFFFFF0000, - 0XF0F00F0F0F0FF0F0, -}, -{ - 0X3C3C3C3C3C3C3C3C, - 0X0F0F0F0F0F0F0F0F, - 0XAAAA5555AAAA5555, - 0XCC3333CCCC3333CC, - 0XC33CC33CC33CC33C, - 0X55555555AAAAAAAA, - 0X33333333CCCCCCCC, - 0XFF00FF0000FF00FF, - 0X0F0F0F0F0F0F0F0F, - 0X0000000000000000, - 0X0000FFFFFFFF0000, - 0XF0F00F0F0F0FF0F0, -}, -//256 -{ - 0XAA55AA5555AA55AA, - 0XCC33CC3333CC33CC, - 0X33CCCC33CC3333CC, - 0X55555555AAAAAAAA, - 0XFF0000FF00FFFF00, - 0X3CC33CC3C33CC33C, - 0X5555AAAA5555AAAA, - 0X0FF00FF00FF00FF0, - 0XCCCC33333333CCCC, - 0XF0F0F0F0F0F0F0F0, - 0X00FFFF0000FFFF00, - 0XC33CC33CC33CC33C, -}, -{ - 0X55AA55AAAA55AA55, - 0XCC33CC3333CC33CC, - 0XCC3333CC33CCCC33, - 0X55555555AAAAAAAA, - 0XFF0000FF00FFFF00, - 0XC33CC33C3CC33CC3, - 0XAAAA5555AAAA5555, - 0XF00FF00FF00FF00F, - 0X3333CCCCCCCC3333, - 0X0F0F0F0F0F0F0F0F, - 0XFF0000FFFF0000FF, - 0XC33CC33CC33CC33C, -}, -{ - 0XAA55AA5555AA55AA, - 0X33CC33CCCC33CC33, - 0XCC3333CC33CCCC33, - 0X55555555AAAAAAAA, - 0X00FFFF00FF0000FF, - 0X3CC33CC3C33CC33C, - 0X5555AAAA5555AAAA, - 0X0FF00FF00FF00FF0, - 0X3333CCCCCCCC3333, - 0XF0F0F0F0F0F0F0F0, - 0X00FFFF0000FFFF00, - 0XC33CC33CC33CC33C, -}, -{ - 0X55AA55AAAA55AA55, - 0X33CC33CCCC33CC33, - 0X33CCCC33CC3333CC, - 0X55555555AAAAAAAA, - 0X00FFFF00FF0000FF, - 0XC33CC33C3CC33CC3, - 0XAAAA5555AAAA5555, - 0XF00FF00FF00FF00F, - 0XCCCC33333333CCCC, - 0X0F0F0F0F0F0F0F0F, - 0XFF0000FFFF0000FF, - 0XC33CC33CC33CC33C, -}, -//512 -{ - 0X6699669999669966, - 0X33CCCC33CC3333CC, - 0XA5A5A5A55A5A5A5A, - 0X3C3CC3C3C3C33C3C, - 0XF00FF00F0FF00FF0, - 0X55AA55AA55AA55AA, - 0X3C3CC3C3C3C33C3C, - 0X0F0F0F0FF0F0F0F0, - 0X55AA55AA55AA55AA, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0X33CCCC33CC3333CC, - 0XA5A5A5A55A5A5A5A, - 0X3C3CC3C3C3C33C3C, - 0X0FF00FF0F00FF00F, - 0XAA55AA55AA55AA55, - 0X3C3CC3C3C3C33C3C, - 0XF0F0F0F00F0F0F0F, - 0XAA55AA55AA55AA55, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -{ - 0X6699669999669966, - 0X33CCCC33CC3333CC, - 0X5A5A5A5AA5A5A5A5, - 0XC3C33C3C3C3CC3C3, - 0X0FF00FF0F00FF00F, - 0XAA55AA55AA55AA55, - 0XC3C33C3C3C3CC3C3, - 0X0F0F0F0FF0F0F0F0, - 0XAA55AA55AA55AA55, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0X33CCCC33CC3333CC, - 0X5A5A5A5AA5A5A5A5, - 0XC3C33C3C3C3CC3C3, - 0XF00FF00F0FF00FF0, - 0X55AA55AA55AA55AA, - 0XC3C33C3C3C3CC3C3, - 0XF0F0F0F00F0F0F0F, - 0X55AA55AA55AA55AA, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -{ - 0X6699669999669966, - 0XCC3333CC33CCCC33, - 0X5A5A5A5AA5A5A5A5, - 0X3C3CC3C3C3C33C3C, - 0X0FF00FF0F00FF00F, - 0X55AA55AA55AA55AA, - 0X3C3CC3C3C3C33C3C, - 0X0F0F0F0FF0F0F0F0, - 0X55AA55AA55AA55AA, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0XCC3333CC33CCCC33, - 0X5A5A5A5AA5A5A5A5, - 0X3C3CC3C3C3C33C3C, - 0XF00FF00F0FF00FF0, - 0XAA55AA55AA55AA55, - 0X3C3CC3C3C3C33C3C, - 0XF0F0F0F00F0F0F0F, - 0XAA55AA55AA55AA55, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -{ - 0X6699669999669966, - 0XCC3333CC33CCCC33, - 0XA5A5A5A55A5A5A5A, - 0XC3C33C3C3C3CC3C3, - 0XF00FF00F0FF00FF0, - 0XAA55AA55AA55AA55, - 0XC3C33C3C3C3CC3C3, - 0X0F0F0F0FF0F0F0F0, - 0XAA55AA55AA55AA55, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0XCC3333CC33CCCC33, - 0XA5A5A5A55A5A5A5A, - 0XC3C33C3C3C3CC3C3, - 0X0FF00FF0F00FF00F, - 0X55AA55AA55AA55AA, - 0XC3C33C3C3C3CC3C3, - 0XF0F0F0F00F0F0F0F, - 0X55AA55AA55AA55AA, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -//1024 -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -//2048 -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -} diff --git a/crypto_kem/mceliece/mceliece348864/vec/controlbits.c b/crypto_kem/mceliece/mceliece348864/vec/controlbits.c deleted file mode 100644 index 3c43028f..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE348864_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE348864_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE348864_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE348864_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/controlbits.h b/crypto_kem/mceliece/mceliece348864/vec/controlbits.h deleted file mode 100644 index cce484fa..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE348864_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE348864_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE348864_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece348864/vec/crypto_hash.h deleted file mode 100644 index b094cb38..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE348864_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/vec/decrypt.c b/crypto_kem/mceliece/mceliece348864/vec/decrypt.c deleted file mode 100644 index f9a8ec16..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/decrypt.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[ GFBITS ]; - vec eval[64][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE348864_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864_VEC_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE348864_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE348864_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864_VEC_vec_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 512 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 512; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE348864_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE348864_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static uint16_t weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 2; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE348864_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE348864_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 64 ][ GFBITS ]; - vec scaled[ 64 ][ GFBITS ]; - vec eval[ 64 ][ GFBITS ]; - - vec error[ 64 ]; - - vec s_priv[ 2 ][ GFBITS ]; - vec s_priv_cmp[ 2 ][ GFBITS ]; - vec locator[ GFBITS ]; - - vec recv[ 64 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE348864_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE348864_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE348864_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE348864_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE348864_VEC_vec_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE348864_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE348864_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE348864_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/decrypt.h b/crypto_kem/mceliece/mceliece348864/vec/decrypt.h deleted file mode 100644 index c2f560a0..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE348864_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE348864_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/encrypt.c b/crypto_kem/mceliece/mceliece348864/vec/encrypt.c deleted file mode 100644 index 4ee27dda..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/encrypt.c +++ /dev/null @@ -1,135 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "gf.h" -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind_[ SYS_T * 2 ]; - uint8_t *ind_8 = (uint8_t *)ind_; - uint16_t ind[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind_8, sizeof(ind_)); - for (i = 0; i < sizeof(ind_); i += 2) { - ind_[i / 2] = (uint16_t)ind_8[i + 1] << 8 | ind_8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind_[i] &= GFMASK; - } - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind_[i] < SYS_N) { - ind[ count++ ] = ind_[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE348864_VEC_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE348864_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE348864_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= PQCLEAN_MCELIECE348864_VEC_load4(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE348864_VEC_load4(e_ptr8 + 8 * j); - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -void PQCLEAN_MCELIECE348864_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/encrypt.h b/crypto_kem/mceliece/mceliece348864/vec/encrypt.h deleted file mode 100644 index 0fb7ab8f..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE348864_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE348864_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/fft.c b/crypto_kem/mceliece/mceliece348864/vec/fft.c deleted file mode 100644 index 3eb33de4..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/fft.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" -#include "vec.h" - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(uint64_t *in) { - int i, j, k; - - const uint64_t mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const uint64_t s[5][GFBITS] = { -#include "scalars.inc" - }; - - // - - for (j = 0; j <= 4; j++) { - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[i] ^= (in[i] & mask[k][0]) >> (1 << k); - in[i] ^= (in[i] & mask[k][1]) >> (1 << k); - } - } - - PQCLEAN_MCELIECE348864_VEC_vec_mul(in, in, s[j]); // scaling - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(uint64_t out[][ GFBITS ], const uint64_t *in) { - int i, j, k, s, b; - - uint64_t tmp[ GFBITS ]; - uint64_t consts[ 63 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec powers[ 64 ][ GFBITS ] = { -#include "powers.inc" - }; - - uint64_t consts_ptr = 0; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - // boradcast - - for (j = 0; j < 64; j++) { - for (i = 0; i < GFBITS; i++) { - out[j][i] = (in[i] >> reversal[j]) & 1; - out[j][i] = -out[j][i]; - } - } - - // butterflies - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // - - // adding the part contributed by x^64 - - for (i = 0; i < 64; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } - -} - -void PQCLEAN_MCELIECE348864_VEC_fft(vec out[][ GFBITS ], vec *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/fft.h b/crypto_kem/mceliece/mceliece348864/vec/fft.h deleted file mode 100644 index 5d28c208..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/fft.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_FFT_H -#define PQCLEAN_MCELIECE348864_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "params.h" -#include "vec.h" -#include - -void PQCLEAN_MCELIECE348864_VEC_fft(vec /*out*/[][ GFBITS ], vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/fft_tr.c b/crypto_kem/mceliece/mceliece348864/vec/fft_tr.c deleted file mode 100644 index 71081cbf..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/fft_tr.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" -#include "vec.h" - -#include - -#define vec_add(z, x, y) \ - for (b = 0; b < GFBITS; b++) { \ - (z)[b] = (x)[b] ^ (y)[b]; \ - } - -static inline void radix_conversions_tr(uint64_t in[][ GFBITS ]) { - int i, j, k; - - const uint64_t mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const uint64_t s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 5; j >= 0; j--) { - if (j < 5) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE348864_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - } - - for (i = 0; i < GFBITS; i++) { - for (k = j; k <= 4; k++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - } - } - - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= (in[0][i] & mask[5][0]) >> 32; - in[1][i] ^= (in[1][i] & mask[5][1]) << 32; - } - } -} - -static inline void butterflies_tr(uint64_t out[][ GFBITS ], uint64_t in[][ GFBITS ]) { - int i, j, k, s, b; - - uint64_t tmp[ GFBITS ]; - uint64_t pre[6][ GFBITS ]; - uint64_t buf[64]; - - const uint64_t consts[ 63 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 63; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {8, 1300, 3408, 1354, 2341, 1154}; - - // butterflies - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - vec_add(in[k], in[k], in[k + s]); - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - vec_add(in[k + s], in[k + s], tmp); - } - } - } - - // transpose - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < 64; j++) { - buf[ reversal[j] ] = in[j][i]; - } - - PQCLEAN_MCELIECE348864_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 64; j++) { - in[j][i] = buf[ j ]; - } - } - - // boradcast - - PQCLEAN_MCELIECE348864_VEC_vec_copy(pre[0], in[32]); - vec_add(in[33], in[33], in[32]); - PQCLEAN_MCELIECE348864_VEC_vec_copy(pre[1], in[33]); - vec_add(in[35], in[35], in[33]); - vec_add(pre[0], pre[0], in[35]); - vec_add(in[34], in[34], in[35]); - PQCLEAN_MCELIECE348864_VEC_vec_copy(pre[2], in[34]); - vec_add(in[38], in[38], in[34]); - vec_add(pre[0], pre[0], in[38]); - vec_add(in[39], in[39], in[38]); - vec_add(pre[1], pre[1], in[39]); - vec_add(in[37], in[37], in[39]); - vec_add(pre[0], pre[0], in[37]); - vec_add(in[36], in[36], in[37]); - PQCLEAN_MCELIECE348864_VEC_vec_copy(pre[3], in[36]); - vec_add(in[44], in[44], in[36]); - vec_add(pre[0], pre[0], in[44]); - vec_add(in[45], in[45], in[44]); - vec_add(pre[1], pre[1], in[45]); - vec_add(in[47], in[47], in[45]); - vec_add(pre[0], pre[0], in[47]); - vec_add(in[46], in[46], in[47]); - vec_add(pre[2], pre[2], in[46]); - vec_add(in[42], in[42], in[46]); - vec_add(pre[0], pre[0], in[42]); - vec_add(in[43], in[43], in[42]); - vec_add(pre[1], pre[1], in[43]); - vec_add(in[41], in[41], in[43]); - vec_add(pre[0], pre[0], in[41]); - vec_add(in[40], in[40], in[41]); - PQCLEAN_MCELIECE348864_VEC_vec_copy(pre[4], in[40]); - vec_add(in[56], in[56], in[40]); - vec_add(pre[0], pre[0], in[56]); - vec_add(in[57], in[57], in[56]); - vec_add(pre[1], pre[1], in[57]); - vec_add(in[59], in[59], in[57]); - vec_add(pre[0], pre[0], in[59]); - vec_add(in[58], in[58], in[59]); - vec_add(pre[2], pre[2], in[58]); - vec_add(in[62], in[62], in[58]); - vec_add(pre[0], pre[0], in[62]); - vec_add(in[63], in[63], in[62]); - vec_add(pre[1], pre[1], in[63]); - vec_add(in[61], in[61], in[63]); - vec_add(pre[0], pre[0], in[61]); - vec_add(in[60], in[60], in[61]); - vec_add(pre[3], pre[3], in[60]); - vec_add(in[52], in[52], in[60]); - vec_add(pre[0], pre[0], in[52]); - vec_add(in[53], in[53], in[52]); - vec_add(pre[1], pre[1], in[53]); - vec_add(in[55], in[55], in[53]); - vec_add(pre[0], pre[0], in[55]); - vec_add(in[54], in[54], in[55]); - vec_add(pre[2], pre[2], in[54]); - vec_add(in[50], in[50], in[54]); - vec_add(pre[0], pre[0], in[50]); - vec_add(in[51], in[51], in[50]); - vec_add(pre[1], pre[1], in[51]); - vec_add(in[49], in[49], in[51]); - vec_add(pre[0], pre[0], in[49]); - vec_add(in[48], in[48], in[49]); - PQCLEAN_MCELIECE348864_VEC_vec_copy(pre[5], in[48]); - vec_add(in[16], in[16], in[48]); - vec_add(pre[0], pre[0], in[16]); - vec_add(in[17], in[17], in[16]); - vec_add(pre[1], pre[1], in[17]); - vec_add(in[19], in[19], in[17]); - vec_add(pre[0], pre[0], in[19]); - vec_add(in[18], in[18], in[19]); - vec_add(pre[2], pre[2], in[18]); - vec_add(in[22], in[22], in[18]); - vec_add(pre[0], pre[0], in[22]); - vec_add(in[23], in[23], in[22]); - vec_add(pre[1], pre[1], in[23]); - vec_add(in[21], in[21], in[23]); - vec_add(pre[0], pre[0], in[21]); - vec_add(in[20], in[20], in[21]); - vec_add(pre[3], pre[3], in[20]); - vec_add(in[28], in[28], in[20]); - vec_add(pre[0], pre[0], in[28]); - vec_add(in[29], in[29], in[28]); - vec_add(pre[1], pre[1], in[29]); - vec_add(in[31], in[31], in[29]); - vec_add(pre[0], pre[0], in[31]); - vec_add(in[30], in[30], in[31]); - vec_add(pre[2], pre[2], in[30]); - vec_add(in[26], in[26], in[30]); - vec_add(pre[0], pre[0], in[26]); - vec_add(in[27], in[27], in[26]); - vec_add(pre[1], pre[1], in[27]); - vec_add(in[25], in[25], in[27]); - vec_add(pre[0], pre[0], in[25]); - vec_add(in[24], in[24], in[25]); - vec_add(pre[4], pre[4], in[24]); - vec_add(in[8], in[8], in[24]); - vec_add(pre[0], pre[0], in[8]); - vec_add(in[9], in[9], in[8]); - vec_add(pre[1], pre[1], in[9]); - vec_add(in[11], in[11], in[9]); - vec_add(pre[0], pre[0], in[11]); - vec_add(in[10], in[10], in[11]); - vec_add(pre[2], pre[2], in[10]); - vec_add(in[14], in[14], in[10]); - vec_add(pre[0], pre[0], in[14]); - vec_add(in[15], in[15], in[14]); - vec_add(pre[1], pre[1], in[15]); - vec_add(in[13], in[13], in[15]); - vec_add(pre[0], pre[0], in[13]); - vec_add(in[12], in[12], in[13]); - vec_add(pre[3], pre[3], in[12]); - vec_add(in[4], in[4], in[12]); - vec_add(pre[0], pre[0], in[4]); - vec_add(in[5], in[5], in[4]); - vec_add(pre[1], pre[1], in[5]); - vec_add(in[7], in[7], in[5]); - vec_add(pre[0], pre[0], in[7]); - vec_add(in[6], in[6], in[7]); - vec_add(pre[2], pre[2], in[6]); - vec_add(in[2], in[2], in[6]); - vec_add(pre[0], pre[0], in[2]); - vec_add(in[3], in[3], in[2]); - vec_add(pre[1], pre[1], in[3]); - vec_add(in[1], in[1], in[3]); - - vec_add(pre[0], pre[0], in[1]); - vec_add(out[0], in[0], in[1]); - - // - - for (j = 0; j < GFBITS; j++) { - tmp[j] = (beta[0] >> j) & 1; - tmp[j] = -tmp[j]; - } - - PQCLEAN_MCELIECE348864_VEC_vec_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = (beta[i] >> j) & 1; - tmp[j] = -tmp[j]; - } - - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp, pre[i], tmp); - vec_add(out[1], out[1], tmp); - } -} - -void PQCLEAN_MCELIECE348864_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/fft_tr.h b/crypto_kem/mceliece/mceliece348864/vec/fft_tr.h deleted file mode 100644 index 44139f36..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE348864_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE348864_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/gf.c b/crypto_kem/mceliece/mceliece348864/vec/gf.c deleted file mode 100644 index dff87128..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/gf.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - This file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -gf PQCLEAN_MCELIECE348864_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 20; - - return (gf) t; -} - -gf PQCLEAN_MCELIECE348864_VEC_gf_add(gf in0, gf in1) { - return in0 ^ in1; -} - -gf PQCLEAN_MCELIECE348864_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint32_t tmp; - uint32_t t0; - uint32_t t1; - uint32_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & (1 << i))); - } - - t = tmp & 0x7FC000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - t = tmp & 0x3000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - return tmp & ((1 << GFBITS) - 1); -} - -/* input: field element in */ -/* return: in^2 */ -static inline gf gf_sq(gf in) { - const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF}; - - uint32_t x = in; - uint32_t t; - - x = (x | (x << 8)) & B[3]; - x = (x | (x << 4)) & B[2]; - x = (x | (x << 2)) & B[1]; - x = (x | (x << 1)) & B[0]; - - t = x & 0x7FC000; - x ^= t >> 9; - x ^= t >> 12; - - t = x & 0x3000; - x ^= t >> 9; - x ^= t >> 12; - - return x & ((1 << GFBITS) - 1); -} - -gf PQCLEAN_MCELIECE348864_VEC_gf_inv(gf in) { - gf tmp_11; - gf tmp_1111; - - gf out = in; - - out = gf_sq(out); - tmp_11 = PQCLEAN_MCELIECE348864_VEC_gf_mul(out, in); // 11 - - out = gf_sq(tmp_11); - out = gf_sq(out); - tmp_1111 = PQCLEAN_MCELIECE348864_VEC_gf_mul(out, tmp_11); // 1111 - - out = gf_sq(tmp_1111); - out = gf_sq(out); - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864_VEC_gf_mul(out, tmp_1111); // 11111111 - - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864_VEC_gf_mul(out, tmp_11); // 1111111111 - - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864_VEC_gf_mul(out, in); // 11111111111 - - return gf_sq(out); // 111111111110 -} - -/* input: field element den, num */ -/* return: (num/den) */ -gf PQCLEAN_MCELIECE348864_VEC_gf_frac(gf den, gf num) { - return PQCLEAN_MCELIECE348864_VEC_gf_mul(PQCLEAN_MCELIECE348864_VEC_gf_inv(den), num); -} - -/* input: in0, in1 in GF((2^m)^t)*/ -/* output: out = in0*in1 */ -void PQCLEAN_MCELIECE348864_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[ SYS_T * 2 - 1 ]; - - for (i = 0; i < SYS_T * 2 - 1; i++) { - prod[i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - for (j = 0; j < SYS_T; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE348864_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = (SYS_T - 1) * 2; i >= SYS_T; i--) { - prod[i - SYS_T + 9] ^= PQCLEAN_MCELIECE348864_VEC_gf_mul(prod[i], (gf) 877); - prod[i - SYS_T + 7] ^= PQCLEAN_MCELIECE348864_VEC_gf_mul(prod[i], (gf) 2888); - prod[i - SYS_T + 5] ^= PQCLEAN_MCELIECE348864_VEC_gf_mul(prod[i], (gf) 1781); - prod[i - SYS_T + 0] ^= PQCLEAN_MCELIECE348864_VEC_gf_mul(prod[i], (gf) 373); - } - - for (i = 0; i < SYS_T; i++) { - out[i] = prod[i]; - } -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864_VEC_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x007FC000007FC000; - tmp ^= (t >> 9) ^ (t >> 12); - - t = tmp & 0x0000300000003000; - tmp ^= (t >> 9) ^ (t >> 12); - - return tmp & 0x00000FFF00000FFF; -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/gf.h b/crypto_kem/mceliece/mceliece348864/vec/gf.h deleted file mode 100644 index 65c6c374..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/gf.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_GF_H -#define PQCLEAN_MCELIECE348864_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE348864_VEC_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE348864_VEC_gf_add(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864_VEC_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864_VEC_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE348864_VEC_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE348864_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864_VEC_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/operations.c b/crypto_kem/mceliece/mceliece348864/vec/operations.c deleted file mode 100644 index 168620ca..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE348864_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE348864_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE348864_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE348864_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE348864_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE348864_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE348864_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE348864_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE348864_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE348864_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE348864_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE348864_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE348864_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/params.h b/crypto_kem/mceliece/mceliece348864/vec/params.h deleted file mode 100644 index cd1a0819..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_PARAMS_H -#define PQCLEAN_MCELIECE348864_VEC_PARAMS_H - -#define GFBITS 12 -#define SYS_N 3488 -#define SYS_T 64 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/pk_gen.c b/crypto_kem/mceliece/mceliece348864/vec/pk_gen.c deleted file mode 100644 index 9b50c0f3..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/pk_gen.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) -int PQCLEAN_MCELIECE348864_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - const int block_idx = NBLOCKS_I; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - uint64_t irr_int[ GFBITS ]; - - vec consts[64][ GFBITS ]; - vec eval[ 64 ][ GFBITS ]; - vec prod[ 64 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 64 ]; - - // compute the inverses - - PQCLEAN_MCELIECE348864_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE348864_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864_VEC_vec_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE348864_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE348864_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - for (row = 0; row < PK_NROWS; row++) { - - for (k = 0; k < NBLOCKS_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS_H - 1; k++) { - PQCLEAN_MCELIECE348864_VEC_store8(pk, one_row[k]); - pk += 8; - } - - PQCLEAN_MCELIECE348864_VEC_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/pk_gen.h b/crypto_kem/mceliece/mceliece348864/vec/pk_gen.h deleted file mode 100644 index c577a9b2..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE348864_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include - -int PQCLEAN_MCELIECE348864_VEC_pk_gen(uint8_t * /*pk*/, uint32_t * /*perm*/, const uint8_t * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/powers.inc b/crypto_kem/mceliece/mceliece348864/vec/powers.inc deleted file mode 100644 index a37fb2bd..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/powers.inc +++ /dev/null @@ -1,896 +0,0 @@ -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -} diff --git a/crypto_kem/mceliece/mceliece348864/vec/scalars.inc b/crypto_kem/mceliece/mceliece348864/vec/scalars.inc deleted file mode 100644 index aa8f64b9..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/scalars.inc +++ /dev/null @@ -1,70 +0,0 @@ -{ - 0XF3CFC030FC30F003, - 0X3FCF0F003C00C00C, - 0X30033CC300C0C03C, - 0XCCFF0F3C0F30F0C0, - 0X0300C03FF303C3F0, - 0X3FFF3C0FF0CCCCC0, - 0XF3FFF0C00F3C3CC0, - 0X3003333FFFC3C000, - 0X0FF30FFFC3FFF300, - 0XFFC0F300F0F0CC00, - 0XC0CFF3FCCC3CFC00, - 0XFC3C03F0F330C000, -}, -{ - 0X000F00000000F00F, - 0X00000F00F00000F0, - 0X0F00000F00000F00, - 0XF00F00F00F000000, - 0X00F00000000000F0, - 0X0000000F00000000, - 0XF00000000F00F000, - 0X00F00F00000F0000, - 0X0000F00000F00F00, - 0X000F00F00F00F000, - 0X00F00F0000000000, - 0X0000000000F00000, -}, -{ - 0X0000FF00FF0000FF, - 0X0000FF000000FF00, - 0XFF0000FF00FF0000, - 0XFFFF0000FF000000, - 0X00FF00FF00FF0000, - 0X0000FFFFFF000000, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF0000, - 0XFFFF00FFFF00FF00, - 0X0000FF0000000000, - 0XFFFFFF00FF000000, - 0X00FF000000000000, -}, -{ - 0X000000000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -} diff --git a/crypto_kem/mceliece/mceliece348864/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece348864/vec/scalars_2x.inc deleted file mode 100644 index e7c7fee5..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/scalars_2x.inc +++ /dev/null @@ -1,140 +0,0 @@ -{{ - 0XF3CFC030FC30F003, - 0X3FCF0F003C00C00C, - 0X30033CC300C0C03C, - 0XCCFF0F3C0F30F0C0, - 0X0300C03FF303C3F0, - 0X3FFF3C0FF0CCCCC0, - 0XF3FFF0C00F3C3CC0, - 0X3003333FFFC3C000, - 0X0FF30FFFC3FFF300, - 0XFFC0F300F0F0CC00, - 0XC0CFF3FCCC3CFC00, - 0XFC3C03F0F330C000, -}, -{ - 0X000C03C0C3C0330C, - 0XF330CFFCC00F33C0, - 0XCCF330F00F3C0333, - 0XFF03FFF3FF0CF0C0, - 0X3CC3FCF00FCC303C, - 0X0F000C0FC30303F3, - 0XCF0FC3FF333CCF3C, - 0X003F3FC3C0FF333F, - 0X3CC3F0F3CF0FF00F, - 0XF3F33CC03FC30CC0, - 0X3CC330CFC333F33F, - 0X3CC0303FF3C3FFFC, -}}, -{{ - 0X000F00000000F00F, - 0X00000F00F00000F0, - 0X0F00000F00000F00, - 0XF00F00F00F000000, - 0X00F00000000000F0, - 0X0000000F00000000, - 0XF00000000F00F000, - 0X00F00F00000F0000, - 0X0000F00000F00F00, - 0X000F00F00F00F000, - 0X00F00F0000000000, - 0X0000000000F00000, -}, -{ - 0X0F00F00F00000000, - 0XF00000000000F000, - 0X00000F00000000F0, - 0X0F00F00000F00000, - 0X000F00000F00F00F, - 0X00F00F00F00F0000, - 0X0F00F00000000000, - 0X000000000F000000, - 0X00F00000000F00F0, - 0X0000F00F00000F00, - 0XF00000F00000F00F, - 0X00000F00F00F00F0, -}}, -{{ - 0X0000FF00FF0000FF, - 0X0000FF000000FF00, - 0XFF0000FF00FF0000, - 0XFFFF0000FF000000, - 0X00FF00FF00FF0000, - 0X0000FFFFFF000000, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF0000, - 0XFFFF00FFFF00FF00, - 0X0000FF0000000000, - 0XFFFFFF00FF000000, - 0X00FF000000000000, -}, -{ - 0XFF00FFFFFF000000, - 0XFF0000FFFF000000, - 0XFFFF00FFFF000000, - 0XFF00FFFFFFFFFF00, - 0X00000000FF00FF00, - 0XFFFFFFFF00FF0000, - 0X00FFFFFF00FF0000, - 0XFFFF00FFFF00FFFF, - 0XFFFF0000FFFFFFFF, - 0XFF00000000FF0000, - 0X000000FF00FF00FF, - 0X00FF00FF00FFFF00, -}}, -{{ - 0X000000000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X0000000000000000, - 0XFFFF000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFF00000000FFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF00000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF00000000FFFF, - 0X00000000FFFF0000, -}}, -{{ - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, -}} diff --git a/crypto_kem/mceliece/mceliece348864/vec/sk_gen.c b/crypto_kem/mceliece/mceliece348864/vec/sk_gen.c deleted file mode 100644 index b82db7cb..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE348864_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE348864_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE348864_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE348864_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE348864_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE348864_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE348864_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE348864_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864/vec/sk_gen.h b/crypto_kem/mceliece/mceliece348864/vec/sk_gen.h deleted file mode 100644 index aad2d4d1..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE348864_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE348864_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE348864_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/transpose.c b/crypto_kem/mceliece/mceliece348864/vec/transpose.c deleted file mode 100644 index bc2d9d70..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE348864_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece348864/vec/transpose.h b/crypto_kem/mceliece/mceliece348864/vec/transpose.h deleted file mode 100644 index 02b7a9c4..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE348864_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE348864_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864/vec/util.c b/crypto_kem/mceliece/mceliece348864/vec/util.c deleted file mode 100644 index 5eb164b6..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/util.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "util.h" - - -void PQCLEAN_MCELIECE348864_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE348864_VEC_store2(unsigned char *dest, gf a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE348864_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE348864_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE348864_VEC_irr_load(uint64_t *out, const unsigned char *in) { - int i, j; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE348864_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - out[i] = 0; - } - - for (i = SYS_T; i >= 0; i--) { - for (j = 0; j < GFBITS; j++) { - out[j] <<= 1; - out[j] |= (irr[i] >> j) & 1; - } - } -} - -void PQCLEAN_MCELIECE348864_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE348864_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -gf PQCLEAN_MCELIECE348864_VEC_bitrev(gf a) { - a = ((a & 0x00FF) << 8) | ((a & 0xFF00) >> 8); - a = ((a & 0x0F0F) << 4) | ((a & 0xF0F0) >> 4); - a = ((a & 0x3333) << 2) | ((a & 0xCCCC) >> 2); - a = ((a & 0x5555) << 1) | ((a & 0xAAAA) >> 1); - - return a >> 4; -} diff --git a/crypto_kem/mceliece/mceliece348864/vec/util.h b/crypto_kem/mceliece/mceliece348864/vec/util.h deleted file mode 100644 index 38ddc754..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/util.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_UTIL_H -#define PQCLEAN_MCELIECE348864_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "gf.h" - -#include - - -void PQCLEAN_MCELIECE348864_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE348864_VEC_store2(unsigned char *dest, gf a); - -uint16_t PQCLEAN_MCELIECE348864_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE348864_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE348864_VEC_irr_load(uint64_t *out, const unsigned char *in); - -void PQCLEAN_MCELIECE348864_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE348864_VEC_load8(const unsigned char *in); - -gf PQCLEAN_MCELIECE348864_VEC_bitrev(gf a); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864/vec/vec.c b/crypto_kem/mceliece/mceliece348864/vec/vec.c deleted file mode 100644 index 9dbab9ad..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/vec.c +++ /dev/null @@ -1,131 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE348864_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE348864_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE348864_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE348864_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return ((int)a & 1) ^ 1; -} - -void PQCLEAN_MCELIECE348864_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE348864_VEC_vec_sq(vec *out, const vec *in) { - int i; - uint64_t result[GFBITS]; - - // - - result[0] = in[0] ^ in[6]; - result[1] = in[11]; - result[2] = in[1] ^ in[7]; - result[3] = in[6]; - result[4] = in[2] ^ in[11] ^ in[8]; - result[5] = in[7]; - result[6] = in[3] ^ in[9]; - result[7] = in[8]; - result[8] = in[4] ^ in[10]; - result[9] = in[9]; - result[10] = in[5] ^ in[11]; - result[11] = in[10]; - - // - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE348864_VEC_vec_inv(vec *out, const vec *in) { - uint64_t tmp_11[GFBITS]; - uint64_t tmp_1111[GFBITS]; - - PQCLEAN_MCELIECE348864_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp_11, out, in); // 11 - - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_mul(tmp_1111, out, tmp_11); // 1111 - - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_mul(out, out, tmp_1111); // 11111111 - - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_mul(out, out, tmp_11); // 1111111111 - - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864_VEC_vec_mul(out, out, in); // 11111111111 - - PQCLEAN_MCELIECE348864_VEC_vec_sq(out, out); // 111111111110 -} diff --git a/crypto_kem/mceliece/mceliece348864/vec/vec.h b/crypto_kem/mceliece/mceliece348864/vec/vec.h deleted file mode 100644 index 808c69fc..00000000 --- a/crypto_kem/mceliece/mceliece348864/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864_VEC_VEC_H -#define PQCLEAN_MCELIECE348864_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE348864_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE348864_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE348864_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE348864_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE348864_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE348864_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE348864_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE348864_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/avx/LICENSE b/crypto_kem/mceliece/mceliece348864f/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece348864f/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece348864f/avx/scalars.inc b/crypto_kem/mceliece/mceliece348864f/avx/scalars.inc deleted file mode 100644 index aa8f64b9..00000000 --- a/crypto_kem/mceliece/mceliece348864f/avx/scalars.inc +++ /dev/null @@ -1,70 +0,0 @@ -{ - 0XF3CFC030FC30F003, - 0X3FCF0F003C00C00C, - 0X30033CC300C0C03C, - 0XCCFF0F3C0F30F0C0, - 0X0300C03FF303C3F0, - 0X3FFF3C0FF0CCCCC0, - 0XF3FFF0C00F3C3CC0, - 0X3003333FFFC3C000, - 0X0FF30FFFC3FFF300, - 0XFFC0F300F0F0CC00, - 0XC0CFF3FCCC3CFC00, - 0XFC3C03F0F330C000, -}, -{ - 0X000F00000000F00F, - 0X00000F00F00000F0, - 0X0F00000F00000F00, - 0XF00F00F00F000000, - 0X00F00000000000F0, - 0X0000000F00000000, - 0XF00000000F00F000, - 0X00F00F00000F0000, - 0X0000F00000F00F00, - 0X000F00F00F00F000, - 0X00F00F0000000000, - 0X0000000000F00000, -}, -{ - 0X0000FF00FF0000FF, - 0X0000FF000000FF00, - 0XFF0000FF00FF0000, - 0XFFFF0000FF000000, - 0X00FF00FF00FF0000, - 0X0000FFFFFF000000, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF0000, - 0XFFFF00FFFF00FF00, - 0X0000FF0000000000, - 0XFFFFFF00FF000000, - 0X00FF000000000000, -}, -{ - 0X000000000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -} diff --git a/crypto_kem/mceliece/mceliece348864f/clean/LICENSE b/crypto_kem/mceliece/mceliece348864f/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece348864f/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece348864f/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece348864f/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 18c0e168..00000000 --- a/crypto_kem/mceliece/mceliece348864f/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece348864f_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece348864f/sse/LICENSE b/crypto_kem/mceliece/mceliece348864f/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.c deleted file mode 100644 index c8d49dcc..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE348864F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.h deleted file mode 100644 index 7cff2420..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE348864F_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE348864F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/sse/api.h b/crypto_kem/mceliece/mceliece348864f/sse/api.h deleted file mode 100644 index 54c39c3e..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/api.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_API_H -#define PQCLEAN_MCELIECE348864F_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE348864F_SSE_CRYPTO_ALGNAME "Classic McEliece 348864f" -#define PQCLEAN_MCELIECE348864F_SSE_CRYPTO_PUBLICKEYBYTES 261120 -#define PQCLEAN_MCELIECE348864F_SSE_CRYPTO_SECRETKEYBYTES 6452 -#define PQCLEAN_MCELIECE348864F_SSE_CRYPTO_CIPHERTEXTBYTES 128 -#define PQCLEAN_MCELIECE348864F_SSE_CRYPTO_BYTES 32 - - - -int PQCLEAN_MCELIECE348864F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE348864F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE348864F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/benes.c b/crypto_kem/mceliece/mceliece348864f/sse/benes.c deleted file mode 100644 index c2b12658..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/benes.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - This file is for Benes network related functions -*/ -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_0(uint64_t *bs, const uint64_t *cond) { - int x; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = bs[ x ] ^ bs[ x + 1 ]; - diff &= *cond++; - bs[ x ] ^= diff; - bs[ x + 1 ] ^= diff; - } -} - -static void layer_1(uint64_t *bs, const uint64_t *cond) { - int x; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = bs[ x + 0 ] ^ bs[ x + 2 ]; - diff &= cond[0]; - bs[ x + 0 ] ^= diff; - bs[ x + 2 ] ^= diff; - - diff = bs[ x + 1 ] ^ bs[ x + 3 ]; - diff &= cond[1]; - bs[ x + 1 ] ^= diff; - bs[ x + 3 ] ^= diff; - - cond += 2; - } -} - -static void layer_2(uint64_t *bs, const uint64_t *cond) { - int x; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = bs[ x + 0 ] ^ bs[ x + 4 ]; - diff &= cond[0]; - bs[ x + 0 ] ^= diff; - bs[ x + 4 ] ^= diff; - - diff = bs[ x + 1 ] ^ bs[ x + 5 ]; - diff &= cond[1]; - bs[ x + 1 ] ^= diff; - bs[ x + 5 ] ^= diff; - - diff = bs[ x + 2 ] ^ bs[ x + 6 ]; - diff &= cond[2]; - bs[ x + 2 ] ^= diff; - bs[ x + 6 ] ^= diff; - - diff = bs[ x + 3 ] ^ bs[ x + 7 ]; - diff &= cond[3]; - bs[ x + 3 ] ^= diff; - bs[ x + 7 ] ^= diff; - - cond += 4; - } -} - -static void layer_3(uint64_t *bs, const uint64_t *cond) { - int x, s; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = bs[ s + 0 ] ^ bs[ s + 8 ]; - diff &= cond[0]; - bs[ s + 0 ] ^= diff; - bs[ s + 8 ] ^= diff; - - diff = bs[ s + 1 ] ^ bs[ s + 9 ]; - diff &= cond[1]; - bs[ s + 1 ] ^= diff; - bs[ s + 9 ] ^= diff; - - diff = bs[ s + 2 ] ^ bs[ s + 10 ]; - diff &= cond[2]; - bs[ s + 2 ] ^= diff; - bs[ s + 10 ] ^= diff; - - diff = bs[ s + 3 ] ^ bs[ s + 11 ]; - diff &= cond[3]; - bs[ s + 3 ] ^= diff; - bs[ s + 11 ] ^= diff; - - cond += 4; - } - } -} - -static void layer_4(uint64_t *bs, const uint64_t *cond) { - int x, s; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = bs[ s + 0 ] ^ bs[ s + 16 ]; - diff &= cond[0]; - bs[ s + 0 ] ^= diff; - bs[ s + 16 ] ^= diff; - - diff = bs[ s + 1 ] ^ bs[ s + 17 ]; - diff &= cond[1]; - bs[ s + 1 ] ^= diff; - bs[ s + 17 ] ^= diff; - - diff = bs[ s + 2 ] ^ bs[ s + 18 ]; - diff &= cond[2]; - bs[ s + 2 ] ^= diff; - bs[ s + 18 ] ^= diff; - - diff = bs[ s + 3 ] ^ bs[ s + 19 ]; - diff &= cond[3]; - bs[ s + 3 ] ^= diff; - bs[ s + 19 ] ^= diff; - - cond += 4; - } - } -} - -static void layer_5(uint64_t *bs, const uint64_t *cond) { - int x, s; - uint64_t diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = bs[ s + 0 ] ^ bs[ s + 32 ]; - diff &= cond[0]; - bs[ s + 0 ] ^= diff; - bs[ s + 32 ] ^= diff; - - diff = bs[ s + 1 ] ^ bs[ s + 33 ]; - diff &= cond[1]; - bs[ s + 1 ] ^= diff; - bs[ s + 33 ] ^= diff; - - diff = bs[ s + 2 ] ^ bs[ s + 34 ]; - diff &= cond[2]; - bs[ s + 2 ] ^= diff; - bs[ s + 34 ] ^= diff; - - diff = bs[ s + 3 ] ^ bs[ s + 35 ]; - diff &= cond[3]; - bs[ s + 3 ] ^= diff; - bs[ s + 35 ] ^= diff; - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: out, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE348864F_SSE_load_bits(uint64_t out[][32], const unsigned char *bits) { - int i, low, block = 0; - - uint64_t cond[64]; - - // - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864F_SSE_load4(bits + block * 256 + i * 4); - } - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(cond); - - for (i = 0; i < 32; i++) { - out[ block ][i] = cond[i]; - } - block++; - } - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 32; i++) { - out[ block ][i] = PQCLEAN_MCELIECE348864F_SSE_load8(bits + block * 256 + i * 8); - } - block++; - } - - for (low = 4; low >= 0; low--) { - for (i = 0; i < 32; i++) { - out[ block ][i] = PQCLEAN_MCELIECE348864F_SSE_load8(bits + block * 256 + i * 8); - } - block++; - } - - for (low = 5; low >= 0; low--) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864F_SSE_load4(bits + block * 256 + i * 4); - } - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(cond); - - for (i = 0; i < 32; i++) { - out[ block ][i] = cond[i]; - } - block++; - } -} - -/* input: r, sequence of bits to be permuted */ -/* cond, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE348864F_SSE_benes(uint64_t *r, uint64_t cond[][32], int rev) { - int block, inc; - - uint64_t *bs = r; - - // - - if (rev == 0) { - block = 0; - inc = 1; - } else { - block = 22; - inc = -1; - } - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(bs); - - layer_0(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_5(bs, cond[ block ]); - block += inc; - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(bs); - - layer_0(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_5(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_0(bs, cond[ block ]); - block += inc; - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(bs); - - layer_5(bs, cond[ block ]); - block += inc; - layer_4(bs, cond[ block ]); - block += inc; - layer_3(bs, cond[ block ]); - block += inc; - layer_2(bs, cond[ block ]); - block += inc; - layer_1(bs, cond[ block ]); - block += inc; - layer_0(bs, cond[ block ]); - //block += inc; - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(bs); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/benes.h b/crypto_kem/mceliece/mceliece348864f/sse/benes.h deleted file mode 100644 index 1148f08f..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/benes.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_BENES_H -#define PQCLEAN_MCELIECE348864F_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "gf.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864F_SSE_load_bits(uint64_t /*out*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE348864F_SSE_benes(uint64_t * /*r*/, uint64_t /*cond*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/bm.c b/crypto_kem/mceliece/mceliece348864f/sse/bm.c deleted file mode 100644 index 1eb846f3..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/bm.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" -#include "util.h" -#include "vec.h" -#include "vec128.h" - -#include -#include - -extern void PQCLEAN_MCELIECE348864F_SSE_update_asm(void *, gf, int); -extern gf PQCLEAN_MCELIECE348864F_SSE_vec_reduce_asm(uint64_t *); - -static inline uint64_t mask_nonzero(gf a) { - uint64_t ret = a; - - ret -= 1; - ret >>= 63; - ret -= 1; - - return ret; -} - -static inline uint64_t mask_leq(uint16_t a, uint16_t b) { - uint64_t a_tmp = a; - uint64_t b_tmp = b; - uint64_t ret = b_tmp - a_tmp; - - ret >>= 63; - ret -= 1; - - return ret; -} - -static void vec_cmov(uint64_t out[][2], uint64_t mask) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i][0] = (out[i][0] & ~mask) | (out[i][1] & mask); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE348864F_SSE_vec128_or(PQCLEAN_MCELIECE348864F_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE348864F_SSE_vec128_sll_2x(PQCLEAN_MCELIECE348864F_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE348864F_SSE_vec128_or(PQCLEAN_MCELIECE348864F_SSE_vec128_srl_2x(PQCLEAN_MCELIECE348864F_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE348864F_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < GFBITS; i++) { - buf[i] = in[i]; - } - for (i = GFBITS; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE348864F_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE348864F_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE348864F_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE348864F_SSE_bm(uint64_t out[ GFBITS ], vec128 in[ GFBITS ]) { - uint16_t i; - uint16_t N, L; - - uint64_t prod[ GFBITS ]; - uint64_t in_tmp[ GFBITS ]; - - uint64_t db[ GFBITS ][ 2 ]; - uint64_t BC_tmp[ GFBITS ][ 2 ]; - uint64_t BC[ GFBITS ][ 2 ]; - - uint64_t mask, t; - - gf d, b, c0 = 1; - - gf coefs[SYS_T * 2]; - - // init - - BC[0][1] = 0; - BC[0][0] = 1; - BC[0][0] <<= 63; - - for (i = 1; i < GFBITS; i++) { - BC[i][0] = BC[i][1] = 0; - } - - b = 1; - L = 0; - - // - - get_coefs(coefs, in); - - for (i = 0; i < GFBITS; i++) { - in_tmp[i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - // computing d - - PQCLEAN_MCELIECE348864F_SSE_vec_mul_asm(prod, in_tmp, &BC[0][1], 16); - - PQCLEAN_MCELIECE348864F_SSE_update_asm(in_tmp, coefs[N], 8); - - d = PQCLEAN_MCELIECE348864F_SSE_vec_reduce_asm(prod); - - t = PQCLEAN_MCELIECE348864F_SSE_gf_mul2(c0, coefs[N], b); - - d ^= t & 0xFFFFFFFF; - - // 3 cases - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - db[i][0] = (d >> i) & 1; - db[i][0] = -db[i][0]; - db[i][1] = (b >> i) & 1; - db[i][1] = -db[i][1]; - } - - PQCLEAN_MCELIECE348864F_SSE_vec128_mul((vec128 *) BC_tmp, (vec128 *) db, (vec128 *) BC); - - vec_cmov(BC, mask); - - PQCLEAN_MCELIECE348864F_SSE_update_asm(BC, mask & c0, 16); - - for (i = 0; i < GFBITS; i++) { - BC[i][1] = BC_tmp[i][0] ^ BC_tmp[i][1]; - } - - c0 = t >> 32; - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - - } - - c0 = PQCLEAN_MCELIECE348864F_SSE_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = (c0 >> i) & 1; - out[i] = -out[i]; - } - - PQCLEAN_MCELIECE348864F_SSE_vec_mul_asm(out, out, &BC[0][1], 16); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/bm.h b/crypto_kem/mceliece/mceliece348864f/sse/bm.h deleted file mode 100644 index 2862c804..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/bm.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_BM_H -#define PQCLEAN_MCELIECE348864F_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864F_SSE_bm(uint64_t *out, vec128 *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/consts.S b/crypto_kem/mceliece/mceliece348864f/sse/consts.S deleted file mode 100644 index 5e9d77a8..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE348864F_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE348864F_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE348864F_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE348864F_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE348864F_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE348864F_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE348864F_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE348864F_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE348864F_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE348864F_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE348864F_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE348864F_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE348864F_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE348864F_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/consts.inc b/crypto_kem/mceliece/mceliece348864f/sse/consts.inc deleted file mode 100644 index 4ed2a081..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/consts.inc +++ /dev/null @@ -1,448 +0,0 @@ -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00F0FF0F00F0FF0, 0xF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF00FF00FF0, 0x0FF00FF00FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA5555AAAA5555AA, 0xAA5555AAAA5555AA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00F0FF0F00F0FF0, 0xF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCC33CC3333CC33CC, 0xCC33CC3333CC33CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CC33CC33CC33CC, 0x33CC33CC33CC33CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5A5A5A5A5A5A5A5A, 0x5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00F0FF0F00F0FF0, 0xF00F0FF0F00F0FF0), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3C3C3C3C3C3C3C3C, 0x3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555AAAA5555AAAA, 0xAAAA5555AAAA5555), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCC3333CCCC3333CC, 0xCC3333CCCC3333CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33CC33CC33CC33C, 0xC33CC33CC33CC33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55555555AAAAAAAA, 0x55555555AAAAAAAA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33333333CCCCCCCC, 0x33333333CCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FFFF00FF00, 0xFF00FF0000FF00FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFFFFFF0000, 0x0000FFFFFFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0xF0F00F0F0F0FF0F0), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA5555AA55AA, 0x55AA55AAAA55AA55), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCC33CC3333CC33CC, 0xCC33CC3333CC33CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55555555AAAAAAAA, 0x55555555AAAAAAAA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF0000FF00FFFF00, 0xFF0000FF00FFFF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC33CC3C33CC33C, 0xC33CC33C3CC33CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555AAAA5555AAAA, 0xAAAA5555AAAA5555), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF00FF00FF0, 0xF00FF00FF00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC33333333CCCC, 0x3333CCCCCCCC3333), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33CC33CC33CC33C, 0xC33CC33CC33CC33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA5555AA55AA, 0x55AA55AAAA55AA55), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CC33CCCC33CC33, 0x33CC33CCCC33CC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCC3333CC33CCCC33, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55555555AAAAAAAA, 0x55555555AAAAAAAA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF00FF0000FF, 0x00FFFF00FF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC33CC3C33CC33C, 0xC33CC33C3CC33CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555AAAA5555AAAA, 0xAAAA5555AAAA5555), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF00FF00FF0, 0xF00FF00FF00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCCCCCC3333, 0xCCCC33333333CCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33CC33CC33CC33C, 0xC33CC33CC33CC33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA5A5A5A55A5A5A5A, 0xA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0x33CCCC33CC3333CC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5A5A5A5AA5A5A5A5, 0x5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCC3333CC33CCCC33, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5A5A5A5AA5A5A5A5, 0x5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3C3CC3C3C3C33C3C, 0x3C3CC3C3C3C33C3C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6699669999669966, 0x9966996666996699), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCC3333CC33CCCC33, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA5A5A5A55A5A5A5A, 0xA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC3C33C3C3C3CC3C3, 0xC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0xF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x33CCCC33CC3333CC, 0xCC3333CC33CCCC33), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0x0F0F0F0F0F0F0F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF0000FFFF0000FF, 0xFF0000FFFF0000FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF00FF00F0FF00FF0, 0x0FF00FF0F00FF00F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F00F0F0F0FF0F0, 0x0F0FF0F0F0F00F0F), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669699696696996, 0x9669699696696996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x9669966996699669, 0x9669966996699669), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x6996699669966996, 0x6996699669966996), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FFFF0000FFFF00, 0x00FFFF0000FFFF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0x00FF00FF00FF00FF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0FF00FF0F00FF00F, 0xF00FF00F0FF00FF0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0FF0F0F0F00F0F, 0xF0F00F0F0F0FF0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0x3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xA55A5AA55AA5A55A, 0xA55A5AA55AA5A55A), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xC33C3CC33CC3C33C, 0xC33C3CC33CC3C33C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3CC3C33C3CC3C33C, 0x3CC3C33C3CC3C33C), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, diff --git a/crypto_kem/mceliece/mceliece348864f/sse/controlbits.c b/crypto_kem/mceliece/mceliece348864f/sse/controlbits.c deleted file mode 100644 index 5eeccdd4..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE348864F_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE348864F_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE348864F_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE348864F_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/controlbits.h b/crypto_kem/mceliece/mceliece348864f/sse/controlbits.h deleted file mode 100644 index 769b184e..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE348864F_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE348864F_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE348864F_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece348864f/sse/crypto_hash.h deleted file mode 100644 index 1a95ccb5..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE348864F_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/sse/decrypt.c b/crypto_kem/mceliece/mceliece348864f/sse/decrypt.c deleted file mode 100644 index 22e7522f..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/decrypt.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - uint64_t irr_int[ GFBITS ]; - vec128 eval[32][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE348864F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864F_SSE_fft(eval, irr_int); - - for (i = 0; i < 32; i++) { - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE348864F_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 32; i++) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864F_SSE_vec128_inv(tmp, inv[31]); - - for (i = 30; i >= 0; i--) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864F_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 32; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE348864F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - uint8_t r[ 512 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 512; i++) { - r[i] = 0; - } - - for (i = 0; i < 32; i++) { - recv[i] = PQCLEAN_MCELIECE348864F_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 32; i++) { - v[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE348864F_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE348864F_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 32; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE348864F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 32; i++) { - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE348864F_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE348864F_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u32( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint64_t synd_cmp(vec128 s0[ GFBITS ], vec128 s1[ GFBITS ]) { - int i; - vec128 diff; - - diff = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(s0[0], s1[0]); - - for (i = 1; i < GFBITS; i++) { - diff = PQCLEAN_MCELIECE348864F_SSE_vec128_or(diff, PQCLEAN_MCELIECE348864F_SSE_vec128_xor(s0[i], s1[i])); - } - - return PQCLEAN_MCELIECE348864F_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE348864F_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 32 ][ GFBITS ]; - vec128 scaled[ 32 ][ GFBITS ]; - vec128 eval[ 32 ][ GFBITS ]; - - vec128 error[ 32 ]; - - vec128 s_priv[ GFBITS ]; - vec128 s_priv_cmp[ GFBITS ]; - - uint64_t locator[ GFBITS ]; - - vec128 recv[ 32 ]; - vec128 allone; - - uint64_t bits_int[23][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE348864F_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE348864F_SSE_benes((uint64_t *) recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - - PQCLEAN_MCELIECE348864F_SSE_fft_tr(s_priv, scaled); - - PQCLEAN_MCELIECE348864F_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE348864F_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE348864F_SSE_vec128_setbits(1); - - for (i = 0; i < 32; i++) { - error[i] = PQCLEAN_MCELIECE348864F_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE348864F_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE348864F_SSE_benes((uint64_t *) error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/decrypt.h b/crypto_kem/mceliece/mceliece348864f/sse/decrypt.h deleted file mode 100644 index d1158693..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE348864F_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE348864F_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/encrypt.c b/crypto_kem/mceliece/mceliece348864f/sse/encrypt.c deleted file mode 100644 index 1bd05824..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/encrypt.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "gf.h" -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE348864F_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind_[ SYS_T * 2 ]; - uint16_t ind[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind_, sizeof(ind_)); - - for (i = 0; i < SYS_T * 2; i++) { - ind_[i] &= GFMASK; - } - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind_[i] < SYS_N) { - ind[ count++ ] = ind_[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE348864F_SSE_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -void PQCLEAN_MCELIECE348864F_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - PQCLEAN_MCELIECE348864F_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/encrypt.h b/crypto_kem/mceliece/mceliece348864f/sse/encrypt.h deleted file mode 100644 index 0cb745ec..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE348864F_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE348864F_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/fft.c b/crypto_kem/mceliece/mceliece348864f/sse/fft.c deleted file mode 100644 index ee16dedf..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/fft.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "vec.h" -#include "vec128.h" - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(uint64_t *in) { - int i, j, k; - - const uint64_t mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const uint64_t s[5][GFBITS] = { -#include "scalars.inc" - }; - - // - - for (j = 0; j <= 4; j++) { - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[i] ^= (in[i] & mask[k][0]) >> (1 << k); - in[i] ^= (in[i] & mask[k][1]) >> (1 << k); - } - } - - PQCLEAN_MCELIECE348864F_SSE_vec_mul(in, in, s[j]); // scaling - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const uint64_t *in) { - int i, j, k, s, b; - - uint64_t t0, t1; - - const vec128 consts[ 32 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 0; - - const uint8_t reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - // boradcast - - vec128 tmp[ GFBITS ]; - vec128 x[ GFBITS ], y[ GFBITS ]; - - for (j = 0; j < 64; j += 4) { - for (i = 0; i < GFBITS; i++) { - t0 = (in[i] >> reversal[j + 0]) & 1; - t0 = -t0; - t1 = (in[i] >> reversal[j + 2]) & 1; - t1 = -t1; - - out[j / 2 + 0][i] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(t0, t1); - - t0 = (in[i] >> reversal[j + 1]) & 1; - t0 = -t0; - t1 = (in[i] >> reversal[j + 3]) & 1; - t1 = -t1; - - out[j / 2 + 1][i] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(t0, t1); - } - } - - // - - - for (i = 0; i < 32; i += 2) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tmp, out[i + 1], consts[ 0 ]); - - for (b = 0; b < GFBITS; b++) { - out[i + 0][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[i + 1][b] ^= out[i + 0][b]; - } - - for (b = 0; b < GFBITS; b++) { - x[b] = PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_low(out[i + 0][b], out[i + 1][b]); - } - for (b = 0; b < GFBITS; b++) { - y[b] = PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_high(out[i + 0][b], out[i + 1][b]); - } - - for (b = 0; b < GFBITS; b++) { - out[i + 0][b] = x[b]; - } - for (b = 0; b < GFBITS; b++) { - out[i + 1][b] = y[b]; - } - } - - consts_ptr += 1; - - for (i = 0; i <= 4; i++) { - s = 1 << i; - - for (j = 0; j < 32; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += s; - } - - // adding the part contributed by x^64 - - vec128 powers[32][GFBITS] = { -#include "powers.inc" - }; - - for (i = 0; i < 32; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } -} - -void PQCLEAN_MCELIECE348864F_SSE_fft(vec128 out[][ GFBITS ], uint64_t *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/fft.h b/crypto_kem/mceliece/mceliece348864f/sse/fft.h deleted file mode 100644 index 48c99619..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/fft.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_FFT_H -#define PQCLEAN_MCELIECE348864F_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864F_SSE_fft(vec128 /*out*/[][GFBITS], uint64_t * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/fft_tr.c b/crypto_kem/mceliece/mceliece348864f/sse/fft_tr.c deleted file mode 100644 index b4625c0c..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/fft_tr.c +++ /dev/null @@ -1,312 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" -#include "vec.h" -#include "vec128.h" - -#include - -static void radix_conversions_tr(vec128 in[ GFBITS ]) { - int i, j, k; - - const vec128 mask[10] = { - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - uint64_t v0, v1; - - // - - for (j = 5; j >= 0; j--) { - - if (j < 5) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(in, in, s[j]); - } - - for (i = 0; i < GFBITS; i++) { - for (k = j; k <= 4; k++) { - in[i] ^= PQCLEAN_MCELIECE348864F_SSE_vec128_sll_2x(in[i] & mask[2 * k + 0], 1 << k); - in[i] ^= PQCLEAN_MCELIECE348864F_SSE_vec128_sll_2x(in[i] & mask[2 * k + 1], 1 << k); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[i], 0); - v1 = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[i], 1); - - v1 ^= v0 >> 32; - v1 ^= v1 << 32; - - in[i] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(v0, v1); - } - } -} - -static void butterflies_tr(vec128 out[ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - uint64_t t[ GFBITS ]; - uint64_t pre[6][ GFBITS ]; - - uint64_t out64[2][GFBITS]; - - vec128 p2[ 6 ]; - vec128 buf[64]; - vec128 tt[ GFBITS ]; - vec128 x[ GFBITS ], y[ GFBITS ]; - - const vec128 consts[ 32 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 32; - - const uint8_t reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {8, 1300, 3408, 1354, 2341, 1154}; - - // butterflies - - for (i = 4; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 32; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tt, in[k], consts[ consts_ptr + (k - j) ]); - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tt[b]; - } - } - } - } - - for (i = 0; i < 32; i += 2) { - for (b = 0; b < GFBITS; b++) { - x[b] = PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_low(in[i + 0][b], in[i + 1][b]); - } - for (b = 0; b < GFBITS; b++) { - y[b] = PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_high(in[i + 0][b], in[i + 1][b]); - } - - for (b = 0; b < GFBITS; b++) { - in[i + 0][b] = x[b] ^ y[b]; - } - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tt, in[i + 0], consts[ 0 ]); - for (b = 0; b < GFBITS; b++) { - in[i + 1][b] = y[b] ^ tt[b]; - } - } - - // transpose - - for (i = 0; i < GFBITS; i += 2) { - for (j = 0; j < 64; j += 4) { - buf[ reversal[j + 0] ] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 0][i + 0], 0), - PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 0][i + 1], 0)); - buf[ reversal[j + 1] ] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 1][i + 0], 0), - PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 1][i + 1], 0)); - buf[ reversal[j + 2] ] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 0][i + 0], 1), - PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 0][i + 1], 1)); - buf[ reversal[j + 3] ] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 1][i + 0], 1), - PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[j / 2 + 1][i + 1], 1)); - } - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x128_sp(buf); - - p2[0] = buf[32]; - buf[33] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[33], buf[32]); - p2[1] = buf[33]; - buf[35] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[35], buf[33]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[35]); - buf[34] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[34], buf[35]); - p2[2] = buf[34]; - buf[38] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[38], buf[34]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[38]); - buf[39] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[39], buf[38]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[39]); - buf[37] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[37], buf[39]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[37]); - buf[36] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[36], buf[37]); - p2[3] = buf[36]; - buf[44] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[44], buf[36]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[44]); - buf[45] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[45], buf[44]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[45]); - buf[47] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[47], buf[45]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[47]); - buf[46] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[46], buf[47]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[46]); - buf[42] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[42], buf[46]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[42]); - buf[43] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[43], buf[42]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[43]); - buf[41] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[41], buf[43]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[41]); - buf[40] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[40], buf[41]); - p2[4] = buf[40]; - buf[56] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[56], buf[40]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[56]); - buf[57] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[57], buf[56]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[57]); - buf[59] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[59], buf[57]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[59]); - buf[58] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[58], buf[59]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[58]); - buf[62] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[62], buf[58]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[62]); - buf[63] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[63], buf[62]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[63]); - buf[61] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[61], buf[63]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[61]); - buf[60] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[60], buf[61]); - p2[3] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[3], buf[60]); - buf[52] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[52], buf[60]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[52]); - buf[53] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[53], buf[52]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[53]); - buf[55] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[55], buf[53]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[55]); - buf[54] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[54], buf[55]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[54]); - buf[50] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[50], buf[54]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[50]); - buf[51] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[51], buf[50]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[51]); - buf[49] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[49], buf[51]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[49]); - buf[48] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[48], buf[49]); - p2[5] = buf[48]; - buf[16] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[16], buf[48]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[16]); - buf[17] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[17], buf[16]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[17]); - buf[19] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[19], buf[17]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[19]); - buf[18] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[18], buf[19]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[18]); - buf[22] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[22], buf[18]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[22]); - buf[23] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[23], buf[22]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[23]); - buf[21] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[21], buf[23]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[21]); - buf[20] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[20], buf[21]); - p2[3] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[3], buf[20]); - buf[28] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[28], buf[20]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[28]); - buf[29] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[29], buf[28]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[29]); - buf[31] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[31], buf[29]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[31]); - buf[30] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[30], buf[31]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[30]); - buf[26] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[26], buf[30]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[26]); - buf[27] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[27], buf[26]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[27]); - buf[25] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[25], buf[27]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[25]); - buf[24] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[24], buf[25]); - p2[4] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[4], buf[24]); - buf[8] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[8], buf[24]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[8]); - buf[9] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[9], buf[8]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[9]); - buf[11] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[11], buf[9]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[11]); - buf[10] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[10], buf[11]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[10]); - buf[14] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[14], buf[10]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[14]); - buf[15] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[15], buf[14]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[15]); - buf[13] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[13], buf[15]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[13]); - buf[12] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[12], buf[13]); - p2[3] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[3], buf[12]); - buf[4] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[4], buf[12]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[4]); - buf[5] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[5], buf[4]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[5]); - buf[7] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[7], buf[5]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[7]); - buf[6] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[6], buf[7]); - p2[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[2], buf[6]); - buf[2] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[2], buf[6]); - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[2]); - buf[3] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[3], buf[2]); - p2[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[1], buf[3]); - buf[1] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[1], buf[3]); - - p2[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(p2[0], buf[1]); - buf[0] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(buf[0], buf[1]); - - for (j = 0; j < 6; j++) { - pre[j][i + 0] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(p2[j], 0); - pre[j][i + 1] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(p2[j], 1); - } - - out64[0][i + 0] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(buf[0], 0); - out64[0][i + 1] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(buf[0], 1); - } - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = (beta[0] >> j) & 1; - t[j] = -t[j]; - } - - PQCLEAN_MCELIECE348864F_SSE_vec_mul(out64[1], pre[0], t); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - t[j] = (beta[i] >> j) & 1; - t[j] = -t[j]; - } - - PQCLEAN_MCELIECE348864F_SSE_vec_mul(t, pre[i], t); - PQCLEAN_MCELIECE348864F_SSE_vec_add(out64[1], out64[1], t); - } - - for (b = 0; b < GFBITS; b++) { - out[b] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(out64[0][b], out64[1][b]); - } -} - -void PQCLEAN_MCELIECE348864F_SSE_fft_tr(vec128 out[GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/fft_tr.h b/crypto_kem/mceliece/mceliece348864f/sse/fft_tr.h deleted file mode 100644 index 12f2a8e7..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/fft_tr.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE348864F_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE348864F_SSE_fft_tr(vec128 /*out*/[GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/gf.c b/crypto_kem/mceliece/mceliece348864f/sse/gf.c deleted file mode 100644 index bce89ef6..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/gf.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - This file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -gf PQCLEAN_MCELIECE348864F_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 20; - - return (gf) t; -} - -gf PQCLEAN_MCELIECE348864F_SSE_gf_add(gf in0, gf in1) { - return in0 ^ in1; -} - -gf PQCLEAN_MCELIECE348864F_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint32_t tmp; - uint32_t t0; - uint32_t t1; - uint32_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & (1 << i))); - } - - t = tmp & 0x7FC000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - t = tmp & 0x3000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - return tmp & ((1 << GFBITS) - 1); -} - -/* input: field element in */ -/* return: in^2 */ -static inline gf gf_sq(gf in) { - const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF}; - - uint32_t x = in; - uint32_t t; - - x = (x | (x << 8)) & B[3]; - x = (x | (x << 4)) & B[2]; - x = (x | (x << 2)) & B[1]; - x = (x | (x << 1)) & B[0]; - - t = x & 0x7FC000; - x ^= t >> 9; - x ^= t >> 12; - - t = x & 0x3000; - x ^= t >> 9; - x ^= t >> 12; - - return x & ((1 << GFBITS) - 1); -} - -gf PQCLEAN_MCELIECE348864F_SSE_gf_inv(gf in) { - gf tmp_11; - gf tmp_1111; - - gf out = in; - - out = gf_sq(out); - tmp_11 = PQCLEAN_MCELIECE348864F_SSE_gf_mul(out, in); // 11 - - out = gf_sq(tmp_11); - out = gf_sq(out); - tmp_1111 = PQCLEAN_MCELIECE348864F_SSE_gf_mul(out, tmp_11); // 1111 - - out = gf_sq(tmp_1111); - out = gf_sq(out); - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864F_SSE_gf_mul(out, tmp_1111); // 11111111 - - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864F_SSE_gf_mul(out, tmp_11); // 1111111111 - - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864F_SSE_gf_mul(out, in); // 11111111111 - - return gf_sq(out); // 111111111110 -} - -/* input: field element den, num */ -/* return: (num/den) */ -gf PQCLEAN_MCELIECE348864F_SSE_gf_frac(gf den, gf num) { - return PQCLEAN_MCELIECE348864F_SSE_gf_mul(PQCLEAN_MCELIECE348864F_SSE_gf_inv(den), num); -} - -/* input: in0, in1 in GF((2^m)^t)*/ -/* output: out = in0*in1 */ -void PQCLEAN_MCELIECE348864F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[ SYS_T * 2 - 1 ]; - - for (i = 0; i < SYS_T * 2 - 1; i++) { - prod[i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - for (j = 0; j < SYS_T; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE348864F_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = (SYS_T - 1) * 2; i >= SYS_T; i--) { - prod[i - SYS_T + 9] ^= PQCLEAN_MCELIECE348864F_SSE_gf_mul(prod[i], (gf) 877); - prod[i - SYS_T + 7] ^= PQCLEAN_MCELIECE348864F_SSE_gf_mul(prod[i], (gf) 2888); - prod[i - SYS_T + 5] ^= PQCLEAN_MCELIECE348864F_SSE_gf_mul(prod[i], (gf) 1781); - prod[i - SYS_T + 0] ^= PQCLEAN_MCELIECE348864F_SSE_gf_mul(prod[i], (gf) 373); - } - - for (i = 0; i < SYS_T; i++) { - out[i] = prod[i]; - } -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864F_SSE_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x007FC000007FC000; - tmp ^= (t >> 9) ^ (t >> 12); - - t = tmp & 0x0000300000003000; - tmp ^= (t >> 9) ^ (t >> 12); - - return tmp & 0x00000FFF00000FFF; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/gf.h b/crypto_kem/mceliece/mceliece348864f/sse/gf.h deleted file mode 100644 index f98c4c57..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/gf.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_GF_H -#define PQCLEAN_MCELIECE348864F_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE348864F_SSE_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE348864F_SSE_gf_add(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864F_SSE_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864F_SSE_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE348864F_SSE_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE348864F_SSE_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864F_SSE_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/operations.c b/crypto_kem/mceliece/mceliece348864f/sse/operations.c deleted file mode 100644 index ecfe628b..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE348864F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE348864F_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE348864F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE348864F_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE348864F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE348864F_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE348864F_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE348864F_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE348864F_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE348864F_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE348864F_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE348864F_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE348864F_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/params.h b/crypto_kem/mceliece/mceliece348864f/sse/params.h deleted file mode 100644 index 578b7328..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_PARAMS_H -#define PQCLEAN_MCELIECE348864F_SSE_PARAMS_H - -#define GFBITS 12 -#define SYS_N 3488 -#define SYS_T 64 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/pk_gen.c b/crypto_kem/mceliece/mceliece348864f/sse/pk_gen.c deleted file mode 100644 index 79a8db88..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/pk_gen.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 32; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 32; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - return (int)_tzcnt_u64(in); -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 127) / 128) * 2 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask(k, ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask(k, ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - -int PQCLEAN_MCELIECE348864F_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - uint64_t irr_int[ GFBITS ]; - - vec128 consts[32][ GFBITS ]; - vec128 eval[ 32 ][ GFBITS ]; - vec128 prod[ 32 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE348864F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864F_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE348864F_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 32; i++) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864F_SSE_vec128_inv(tmp, prod[31]); - - for (i = 30; i >= 0; i--) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864F_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE348864F_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE348864F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS1_H - 1; j++) { - PQCLEAN_MCELIECE348864F_SSE_store8(pk, mat[i][j]); - pk += 8; - } - - PQCLEAN_MCELIECE348864F_SSE_store_i(pk, mat[i][j], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/pk_gen.h b/crypto_kem/mceliece/mceliece348864f/sse/pk_gen.h deleted file mode 100644 index 4622954f..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE348864F_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include "gf.h" - -int PQCLEAN_MCELIECE348864F_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/powers.inc b/crypto_kem/mceliece/mceliece348864f/sse/powers.inc deleted file mode 100644 index f48a95b6..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/powers.inc +++ /dev/null @@ -1,448 +0,0 @@ -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3333CCCC3333CCCC, 0x3333CCCC3333CCCC), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x55AA55AA55AA55AA, 0xAA55AA55AA55AA55), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F00F0F0F0F, 0xF0F0F0F00F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, -{ -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xAA55AA55AA55AA55, 0x55AA55AA55AA55AA), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0F0F0F0FF0F0F0F0, 0x0F0F0F0FF0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xCCCC3333CCCC3333, 0xCCCC3333CCCC3333), -PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x5555555555555555, 0x5555555555555555), -}, diff --git a/crypto_kem/mceliece/mceliece348864f/sse/scalars.inc b/crypto_kem/mceliece/mceliece348864f/sse/scalars.inc deleted file mode 100644 index aa8f64b9..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/scalars.inc +++ /dev/null @@ -1,70 +0,0 @@ -{ - 0XF3CFC030FC30F003, - 0X3FCF0F003C00C00C, - 0X30033CC300C0C03C, - 0XCCFF0F3C0F30F0C0, - 0X0300C03FF303C3F0, - 0X3FFF3C0FF0CCCCC0, - 0XF3FFF0C00F3C3CC0, - 0X3003333FFFC3C000, - 0X0FF30FFFC3FFF300, - 0XFFC0F300F0F0CC00, - 0XC0CFF3FCCC3CFC00, - 0XFC3C03F0F330C000, -}, -{ - 0X000F00000000F00F, - 0X00000F00F00000F0, - 0X0F00000F00000F00, - 0XF00F00F00F000000, - 0X00F00000000000F0, - 0X0000000F00000000, - 0XF00000000F00F000, - 0X00F00F00000F0000, - 0X0000F00000F00F00, - 0X000F00F00F00F000, - 0X00F00F0000000000, - 0X0000000000F00000, -}, -{ - 0X0000FF00FF0000FF, - 0X0000FF000000FF00, - 0XFF0000FF00FF0000, - 0XFFFF0000FF000000, - 0X00FF00FF00FF0000, - 0X0000FFFFFF000000, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF0000, - 0XFFFF00FFFF00FF00, - 0X0000FF0000000000, - 0XFFFFFF00FF000000, - 0X00FF000000000000, -}, -{ - 0X000000000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -} diff --git a/crypto_kem/mceliece/mceliece348864f/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece348864f/sse/scalars_2x.inc deleted file mode 100644 index 55ba6c26..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/scalars_2x.inc +++ /dev/null @@ -1,70 +0,0 @@ -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xf3cfc030fc30f003, 0x000c03c0c3c0330c), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3fcf0f003c00c00c, 0xf330cffcc00f33c0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x30033cc300c0c03c, 0xccf330f00f3c0333), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xccff0f3c0f30f0c0, 0xff03fff3ff0cf0c0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0300c03ff303c3f0, 0x3cc3fcf00fcc303c), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3fff3c0ff0ccccc0, 0x0f000c0fc30303f3), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xf3fff0c00f3c3cc0, 0xcf0fc3ff333ccf3c), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x3003333fffc3c000, 0x003f3fc3c0ff333f), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0ff30fffc3fff300, 0x3cc3f0f3cf0ff00f), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffc0f300f0f0cc00, 0xf3f33cc03fc30cc0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xc0cff3fccc3cfc00, 0x3cc330cfc333f33f), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xfc3c03f0f330c000, 0x3cc0303ff3c3fffc), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x000f00000000f00f, 0x0f00f00f00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00000f00f00000f0, 0xf00000000000f000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0f00000f00000f00, 0x00000f00000000f0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xf00f00f00f000000, 0x0f00f00000f00000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00f00000000000f0, 0x000f00000f00f00f), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000f00000000, 0x00f00f00f00f0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xf00000000f00f000, 0x0f00f00000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00f00f00000f0000, 0x000000000f000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000f00000f00f00, 0x00f00000000f00f0), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x000f00f00f00f000, 0x0000f00f00000f00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00f00f0000000000, 0xf00000f00000f00f), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000f00000, 0x00000f00f00f00f0), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000ff00ff0000ff, 0xff00ffffff000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000ff000000ff00, 0xff0000ffff000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xff0000ff00ff0000, 0xffff00ffff000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffff0000ff000000, 0xff00ffffffffff00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00ff00ff00ff0000, 0x00000000ff00ff00), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000ffffff000000, 0xffffffff00ff0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00ffff00ff000000, 0x00ffffff00ff0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffffff0000ff0000, 0xffff00ffff00ffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffff00ffff00ff00, 0xffff0000ffffffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000ff0000000000, 0xff00000000ff0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffffff00ff000000, 0x000000ff00ff00ff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00ff000000000000, 0x00ff00ff00ffff00), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x000000000000ffff, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00000000ffff0000, 0xffff000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffff000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00000000ffff0000, 0xffff00000000ffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000ffff00000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000ffff00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00000000ffff0000, 0xffff00000000ffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000ffff00000000, 0x00000000ffff0000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffff00000000ffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x00000000ffff0000), -}, -{ - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x00000000ffffffff, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffffffff00000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffffffff00000000, 0x00000000ffffffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffffffff00000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffffffffffffffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0xffffffff00000000, 0xffffffff00000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0x0000000000000000), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffffffffffffffff), - PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(0x0000000000000000, 0xffffffff00000000), -}, diff --git a/crypto_kem/mceliece/mceliece348864f/sse/sk_gen.c b/crypto_kem/mceliece/mceliece348864f/sse/sk_gen.c deleted file mode 100644 index 233f5a7f..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE348864F_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE348864F_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE348864F_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE348864F_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE348864F_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE348864F_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE348864F_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE348864F_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/sk_gen.h b/crypto_kem/mceliece/mceliece348864f/sse/sk_gen.h deleted file mode 100644 index 84dcfcfd..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE348864F_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE348864F_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE348864F_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece348864f/sse/syndrome_asm.S deleted file mode 100644 index 59e9f108..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/syndrome_asm.S +++ /dev/null @@ -1,740 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864F_SSE_syndrome_asm -.global PQCLEAN_MCELIECE348864F_SSE_syndrome_asm -_PQCLEAN_MCELIECE348864F_SSE_syndrome_asm: -PQCLEAN_MCELIECE348864F_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 260780 -# asm 1: add $260780,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 768 -# asm 1: mov $768,>row=int64#5 -# asm 2: mov $768,>row=%r8 -mov $768,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#2 -# asm 2: movdqu 96(ee=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#3 -# asm 2: movdqu 112(ee=%xmm2 -movdqu 112(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(ee=reg128#3 -# asm 2: movdqu 128(ee=%xmm2 -movdqu 128(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(ee=reg128#3 -# asm 2: movdqu 144(ee=%xmm2 -movdqu 144(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(ee=reg128#3 -# asm 2: movdqu 160(ee=%xmm2 -movdqu 160(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(ee=reg128#3 -# asm 2: movdqu 176(ee=%xmm2 -movdqu 176(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(ee=reg128#3 -# asm 2: movdqu 192(ee=%xmm2 -movdqu 192(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(ee=reg128#3 -# asm 2: movdqu 208(ee=%xmm2 -movdqu 208(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(ee=reg128#3 -# asm 2: movdqu 224(ee=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(ee=reg128#3 -# asm 2: movdqu 240(ee=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(ee=reg128#3 -# asm 2: movdqu 256(ee=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(ee=reg128#3 -# asm 2: movdqu 272(ee=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(ee=reg128#3 -# asm 2: movdqu 288(ee=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(ee=reg128#3 -# asm 2: movdqu 304(ee=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(ee=reg128#3 -# asm 2: movdqu 320(ee=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(ee=reg128#3 -# asm 2: movdqu 336(ee=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(ee=reg128#3 -# asm 2: movdqu 352(ee=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(ee=reg128#3 -# asm 2: movdqu 368(ee=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(ee=reg128#3 -# asm 2: movdqu 384(ee=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(ee=reg128#3 -# asm 2: movdqu 400(ee=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(ee=reg128#3 -# asm 2: movdqu 416(ee=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = *(uint32 *)(input_1 + 336) -# asm 1: movl 336(s=int64#6d -# asm 2: movl 336(s=%r9d -movl 336(%rsi),%r9d - -# qhasm: e = *(uint32 *)(input_2 + 432) -# asm 1: movl 432(e=int64#7d -# asm 2: movl 432(e=%eax -movl 432(%rdx),%eax - -# qhasm: s &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 16(ss=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#2 -# asm 2: movdqu 16(ee=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 32(ss=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#2 -# asm 2: movdqu 32(ee=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 48(ss=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#2 -# asm 2: movdqu 48(ee=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 64(ss=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#2 -# asm 2: movdqu 64(ee=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 80(ss=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#2 -# asm 2: movdqu 80(ee=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor - -void PQCLEAN_MCELIECE348864F_SSE_transpose_64x64(uint64_t *in); -void PQCLEAN_MCELIECE348864F_SSE_transpose_64x128_sp(vec128 *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/transpose_64x128_sp_asm.S b/crypto_kem/mceliece/mceliece348864f/sse/transpose_64x128_sp_asm.S deleted file mode 100644 index 9565833b..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/transpose_64x128_sp_asm.S +++ /dev/null @@ -1,8145 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 x0 - -# qhasm: reg128 x1 - -# qhasm: reg128 x2 - -# qhasm: reg128 x3 - -# qhasm: reg128 x4 - -# qhasm: reg128 x5 - -# qhasm: reg128 x6 - -# qhasm: reg128 x7 - -# qhasm: reg128 t0 - -# qhasm: reg128 t1 - -# qhasm: reg128 v00 - -# qhasm: reg128 v01 - -# qhasm: reg128 v10 - -# qhasm: reg128 v11 - -# qhasm: reg128 mask0 - -# qhasm: reg128 mask1 - -# qhasm: reg128 mask2 - -# qhasm: reg128 mask3 - -# qhasm: reg128 mask4 - -# qhasm: reg128 mask5 - -# qhasm: enter transpose_64x128_sp_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864F_SSE_transpose_64x128_sp_asm -.global PQCLEAN_MCELIECE348864F_SSE_transpose_64x128_sp_asm -_PQCLEAN_MCELIECE348864F_SSE_transpose_64x128_sp_asm: -PQCLEAN_MCELIECE348864F_SSE_transpose_64x128_sp_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: mask0 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK5_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_0(%rip),>mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: r0 = mem64[ input_0 + 0 ] x2 -# asm 1: movddup 0(r0=reg128#7 -# asm 2: movddup 0(r0=%xmm6 -movddup 0(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 64 ] x2 -# asm 1: movddup 64(r1=reg128#8 -# asm 2: movddup 64(r1=%xmm7 -movddup 64(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 128 ] x2 -# asm 1: movddup 128(r2=reg128#9 -# asm 2: movddup 128(r2=%xmm8 -movddup 128(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 192 ] x2 -# asm 1: movddup 192(r3=reg128#10 -# asm 2: movddup 192(r3=%xmm9 -movddup 192(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 256 ] x2 -# asm 1: movddup 256(r4=reg128#11 -# asm 2: movddup 256(r4=%xmm10 -movddup 256(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 320 ] x2 -# asm 1: movddup 320(r5=reg128#12 -# asm 2: movddup 320(r5=%xmm11 -movddup 320(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 384 ] x2 -# asm 1: movddup 384(r6=reg128#13 -# asm 2: movddup 384(r6=%xmm12 -movddup 384(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 448 ] x2 -# asm 1: movddup 448(r7=reg128#14 -# asm 2: movddup 448(r7=%xmm13 -movddup 448(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 0 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 64 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 128 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 192 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 256 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 320 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 384 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 448 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 8(r0=%xmm6 -movddup 8(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 72 ] x2 -# asm 1: movddup 72(r1=reg128#8 -# asm 2: movddup 72(r1=%xmm7 -movddup 72(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 136 ] x2 -# asm 1: movddup 136(r2=reg128#9 -# asm 2: movddup 136(r2=%xmm8 -movddup 136(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 200 ] x2 -# asm 1: movddup 200(r3=reg128#10 -# asm 2: movddup 200(r3=%xmm9 -movddup 200(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 264 ] x2 -# asm 1: movddup 264(r4=reg128#11 -# asm 2: movddup 264(r4=%xmm10 -movddup 264(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 328 ] x2 -# asm 1: movddup 328(r5=reg128#12 -# asm 2: movddup 328(r5=%xmm11 -movddup 328(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 392 ] x2 -# asm 1: movddup 392(r6=reg128#13 -# asm 2: movddup 392(r6=%xmm12 -movddup 392(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 456 ] x2 -# asm 1: movddup 456(r7=reg128#14 -# asm 2: movddup 456(r7=%xmm13 -movddup 456(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 8 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 72 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 136 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 200 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 264 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 328 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 392 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 456 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 16(r0=%xmm6 -movddup 16(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 80 ] x2 -# asm 1: movddup 80(r1=reg128#8 -# asm 2: movddup 80(r1=%xmm7 -movddup 80(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 144 ] x2 -# asm 1: movddup 144(r2=reg128#9 -# asm 2: movddup 144(r2=%xmm8 -movddup 144(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 208 ] x2 -# asm 1: movddup 208(r3=reg128#10 -# asm 2: movddup 208(r3=%xmm9 -movddup 208(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 272 ] x2 -# asm 1: movddup 272(r4=reg128#11 -# asm 2: movddup 272(r4=%xmm10 -movddup 272(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 336 ] x2 -# asm 1: movddup 336(r5=reg128#12 -# asm 2: movddup 336(r5=%xmm11 -movddup 336(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 400 ] x2 -# asm 1: movddup 400(r6=reg128#13 -# asm 2: movddup 400(r6=%xmm12 -movddup 400(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 464 ] x2 -# asm 1: movddup 464(r7=reg128#14 -# asm 2: movddup 464(r7=%xmm13 -movddup 464(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 16 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 80 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 144 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 208 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 272 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 336 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 400 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 464 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 24(r0=%xmm6 -movddup 24(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 88 ] x2 -# asm 1: movddup 88(r1=reg128#8 -# asm 2: movddup 88(r1=%xmm7 -movddup 88(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 152 ] x2 -# asm 1: movddup 152(r2=reg128#9 -# asm 2: movddup 152(r2=%xmm8 -movddup 152(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 216 ] x2 -# asm 1: movddup 216(r3=reg128#10 -# asm 2: movddup 216(r3=%xmm9 -movddup 216(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 280 ] x2 -# asm 1: movddup 280(r4=reg128#11 -# asm 2: movddup 280(r4=%xmm10 -movddup 280(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 344 ] x2 -# asm 1: movddup 344(r5=reg128#12 -# asm 2: movddup 344(r5=%xmm11 -movddup 344(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 408 ] x2 -# asm 1: movddup 408(r6=reg128#13 -# asm 2: movddup 408(r6=%xmm12 -movddup 408(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 472 ] x2 -# asm 1: movddup 472(r7=reg128#14 -# asm 2: movddup 472(r7=%xmm13 -movddup 472(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 24 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 88 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 152 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 216 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 280 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 344 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 408 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 472 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 32(r0=%xmm6 -movddup 32(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 96 ] x2 -# asm 1: movddup 96(r1=reg128#8 -# asm 2: movddup 96(r1=%xmm7 -movddup 96(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 160 ] x2 -# asm 1: movddup 160(r2=reg128#9 -# asm 2: movddup 160(r2=%xmm8 -movddup 160(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 224 ] x2 -# asm 1: movddup 224(r3=reg128#10 -# asm 2: movddup 224(r3=%xmm9 -movddup 224(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 288 ] x2 -# asm 1: movddup 288(r4=reg128#11 -# asm 2: movddup 288(r4=%xmm10 -movddup 288(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 352 ] x2 -# asm 1: movddup 352(r5=reg128#12 -# asm 2: movddup 352(r5=%xmm11 -movddup 352(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 416 ] x2 -# asm 1: movddup 416(r6=reg128#13 -# asm 2: movddup 416(r6=%xmm12 -movddup 416(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 480 ] x2 -# asm 1: movddup 480(r7=reg128#14 -# asm 2: movddup 480(r7=%xmm13 -movddup 480(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 32 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 96 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 160 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 224 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 288 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 352 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 416 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 480 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 40(r0=%xmm6 -movddup 40(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 104 ] x2 -# asm 1: movddup 104(r1=reg128#8 -# asm 2: movddup 104(r1=%xmm7 -movddup 104(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 168 ] x2 -# asm 1: movddup 168(r2=reg128#9 -# asm 2: movddup 168(r2=%xmm8 -movddup 168(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 232 ] x2 -# asm 1: movddup 232(r3=reg128#10 -# asm 2: movddup 232(r3=%xmm9 -movddup 232(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 296 ] x2 -# asm 1: movddup 296(r4=reg128#11 -# asm 2: movddup 296(r4=%xmm10 -movddup 296(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 360 ] x2 -# asm 1: movddup 360(r5=reg128#12 -# asm 2: movddup 360(r5=%xmm11 -movddup 360(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 424 ] x2 -# asm 1: movddup 424(r6=reg128#13 -# asm 2: movddup 424(r6=%xmm12 -movddup 424(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 488 ] x2 -# asm 1: movddup 488(r7=reg128#14 -# asm 2: movddup 488(r7=%xmm13 -movddup 488(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 40 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 104 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 168 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 232 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 296 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 360 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 424 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 488 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 48(r0=%xmm6 -movddup 48(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 112 ] x2 -# asm 1: movddup 112(r1=reg128#8 -# asm 2: movddup 112(r1=%xmm7 -movddup 112(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 176 ] x2 -# asm 1: movddup 176(r2=reg128#9 -# asm 2: movddup 176(r2=%xmm8 -movddup 176(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 240 ] x2 -# asm 1: movddup 240(r3=reg128#10 -# asm 2: movddup 240(r3=%xmm9 -movddup 240(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 304 ] x2 -# asm 1: movddup 304(r4=reg128#11 -# asm 2: movddup 304(r4=%xmm10 -movddup 304(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 368 ] x2 -# asm 1: movddup 368(r5=reg128#12 -# asm 2: movddup 368(r5=%xmm11 -movddup 368(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 432 ] x2 -# asm 1: movddup 432(r6=reg128#13 -# asm 2: movddup 432(r6=%xmm12 -movddup 432(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 496 ] x2 -# asm 1: movddup 496(r7=reg128#14 -# asm 2: movddup 496(r7=%xmm13 -movddup 496(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 48 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm13,%rsi - -# qhasm: mem64[ input_0 + 112 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm14,%rsi - -# qhasm: mem64[ input_0 + 176 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm10,%rsi - -# qhasm: mem64[ input_0 + 240 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm11,%rsi - -# qhasm: mem64[ input_0 + 304 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 368 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm12,%rsi - -# qhasm: mem64[ input_0 + 432 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm6,%rsi - -# qhasm: mem64[ input_0 + 496 ] = buf -# asm 1: movq r0=reg128#7 -# asm 2: movddup 56(r0=%xmm6 -movddup 56(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 120 ] x2 -# asm 1: movddup 120(r1=reg128#8 -# asm 2: movddup 120(r1=%xmm7 -movddup 120(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 184 ] x2 -# asm 1: movddup 184(r2=reg128#9 -# asm 2: movddup 184(r2=%xmm8 -movddup 184(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 248 ] x2 -# asm 1: movddup 248(r3=reg128#10 -# asm 2: movddup 248(r3=%xmm9 -movddup 248(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 312 ] x2 -# asm 1: movddup 312(r4=reg128#11 -# asm 2: movddup 312(r4=%xmm10 -movddup 312(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 376 ] x2 -# asm 1: movddup 376(r5=reg128#12 -# asm 2: movddup 376(r5=%xmm11 -movddup 376(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 440 ] x2 -# asm 1: movddup 440(r6=reg128#13 -# asm 2: movddup 440(r6=%xmm12 -movddup 440(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 504 ] x2 -# asm 1: movddup 504(r7=reg128#14 -# asm 2: movddup 504(r7=%xmm13 -movddup 504(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = r4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = r0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = r5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = r1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = r6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = r2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = r7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = r3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: r3 = v00 | v10 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = r2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = r0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = r3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = r1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: r1 = v00 | v10 -# asm 1: vpor r1=reg128#13 -# asm 2: vpor r1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = r6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = r4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#11 -# asm 2: vpor r4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = r7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = r5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: r5 = v00 | v10 -# asm 1: vpor r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = r1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = r0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: r0 = v00 | v10 -# asm 1: vpor r0=reg128#4 -# asm 2: vpor r0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#8 -# asm 2: vpor r1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = r3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = r2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: r2 = v00 | v10 -# asm 1: vpor r2=reg128#9 -# asm 2: vpor r2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = r5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = r4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: r4 = v00 | v10 -# asm 1: vpor r4=reg128#10 -# asm 2: vpor r4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = r7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = r6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: r6 = v00 | v10 -# asm 1: vpor r6=reg128#5 -# asm 2: vpor r6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: buf = r0[0] -# asm 1: pextrq $0x0,buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm3,%rsi - -# qhasm: mem64[ input_0 + 56 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm7,%rsi - -# qhasm: mem64[ input_0 + 120 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm8,%rsi - -# qhasm: mem64[ input_0 + 184 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm0,%rsi - -# qhasm: mem64[ input_0 + 248 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm9,%rsi - -# qhasm: mem64[ input_0 + 312 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm2,%rsi - -# qhasm: mem64[ input_0 + 376 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm4,%rsi - -# qhasm: mem64[ input_0 + 440 ] = buf -# asm 1: movq buf=int64#2 -# asm 2: pextrq $0x0,buf=%rsi -pextrq $0x0,%xmm1,%rsi - -# qhasm: mem64[ input_0 + 504 ] = buf -# asm 1: movq mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE348864F_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE348864F_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: r0 = mem64[ input_0 + 0 ] x2 -# asm 1: movddup 0(r0=reg128#7 -# asm 2: movddup 0(r0=%xmm6 -movddup 0(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 8 ] x2 -# asm 1: movddup 8(r1=reg128#8 -# asm 2: movddup 8(r1=%xmm7 -movddup 8(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 16 ] x2 -# asm 1: movddup 16(r2=reg128#9 -# asm 2: movddup 16(r2=%xmm8 -movddup 16(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 24 ] x2 -# asm 1: movddup 24(r3=reg128#10 -# asm 2: movddup 24(r3=%xmm9 -movddup 24(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 32 ] x2 -# asm 1: movddup 32(r4=reg128#11 -# asm 2: movddup 32(r4=%xmm10 -movddup 32(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 40 ] x2 -# asm 1: movddup 40(r5=reg128#12 -# asm 2: movddup 40(r5=%xmm11 -movddup 40(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 48 ] x2 -# asm 1: movddup 48(r6=reg128#13 -# asm 2: movddup 48(r6=%xmm12 -movddup 48(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 56 ] x2 -# asm 1: movddup 56(r7=reg128#14 -# asm 2: movddup 56(r7=%xmm13 -movddup 56(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 0 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 16 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 32 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 64(r0=%xmm6 -movddup 64(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 72 ] x2 -# asm 1: movddup 72(r1=reg128#8 -# asm 2: movddup 72(r1=%xmm7 -movddup 72(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 80 ] x2 -# asm 1: movddup 80(r2=reg128#9 -# asm 2: movddup 80(r2=%xmm8 -movddup 80(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 88 ] x2 -# asm 1: movddup 88(r3=reg128#10 -# asm 2: movddup 88(r3=%xmm9 -movddup 88(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 96 ] x2 -# asm 1: movddup 96(r4=reg128#11 -# asm 2: movddup 96(r4=%xmm10 -movddup 96(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 104 ] x2 -# asm 1: movddup 104(r5=reg128#12 -# asm 2: movddup 104(r5=%xmm11 -movddup 104(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 112 ] x2 -# asm 1: movddup 112(r6=reg128#13 -# asm 2: movddup 112(r6=%xmm12 -movddup 112(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 120 ] x2 -# asm 1: movddup 120(r7=reg128#14 -# asm 2: movddup 120(r7=%xmm13 -movddup 120(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 64 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 80 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 96 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 112 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 128(r0=%xmm6 -movddup 128(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 136 ] x2 -# asm 1: movddup 136(r1=reg128#8 -# asm 2: movddup 136(r1=%xmm7 -movddup 136(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 144 ] x2 -# asm 1: movddup 144(r2=reg128#9 -# asm 2: movddup 144(r2=%xmm8 -movddup 144(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 152 ] x2 -# asm 1: movddup 152(r3=reg128#10 -# asm 2: movddup 152(r3=%xmm9 -movddup 152(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 160 ] x2 -# asm 1: movddup 160(r4=reg128#11 -# asm 2: movddup 160(r4=%xmm10 -movddup 160(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 168 ] x2 -# asm 1: movddup 168(r5=reg128#12 -# asm 2: movddup 168(r5=%xmm11 -movddup 168(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 176 ] x2 -# asm 1: movddup 176(r6=reg128#13 -# asm 2: movddup 176(r6=%xmm12 -movddup 176(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 184 ] x2 -# asm 1: movddup 184(r7=reg128#14 -# asm 2: movddup 184(r7=%xmm13 -movddup 184(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 128 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 144 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 160 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 176 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 192(r0=%xmm6 -movddup 192(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 200 ] x2 -# asm 1: movddup 200(r1=reg128#8 -# asm 2: movddup 200(r1=%xmm7 -movddup 200(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 208 ] x2 -# asm 1: movddup 208(r2=reg128#9 -# asm 2: movddup 208(r2=%xmm8 -movddup 208(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 216 ] x2 -# asm 1: movddup 216(r3=reg128#10 -# asm 2: movddup 216(r3=%xmm9 -movddup 216(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 224 ] x2 -# asm 1: movddup 224(r4=reg128#11 -# asm 2: movddup 224(r4=%xmm10 -movddup 224(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 232 ] x2 -# asm 1: movddup 232(r5=reg128#12 -# asm 2: movddup 232(r5=%xmm11 -movddup 232(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 240 ] x2 -# asm 1: movddup 240(r6=reg128#13 -# asm 2: movddup 240(r6=%xmm12 -movddup 240(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 248 ] x2 -# asm 1: movddup 248(r7=reg128#14 -# asm 2: movddup 248(r7=%xmm13 -movddup 248(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 192 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 208 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 224 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 240 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 256(r0=%xmm6 -movddup 256(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 264 ] x2 -# asm 1: movddup 264(r1=reg128#8 -# asm 2: movddup 264(r1=%xmm7 -movddup 264(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 272 ] x2 -# asm 1: movddup 272(r2=reg128#9 -# asm 2: movddup 272(r2=%xmm8 -movddup 272(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 280 ] x2 -# asm 1: movddup 280(r3=reg128#10 -# asm 2: movddup 280(r3=%xmm9 -movddup 280(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 288 ] x2 -# asm 1: movddup 288(r4=reg128#11 -# asm 2: movddup 288(r4=%xmm10 -movddup 288(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 296 ] x2 -# asm 1: movddup 296(r5=reg128#12 -# asm 2: movddup 296(r5=%xmm11 -movddup 296(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 304 ] x2 -# asm 1: movddup 304(r6=reg128#13 -# asm 2: movddup 304(r6=%xmm12 -movddup 304(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 312 ] x2 -# asm 1: movddup 312(r7=reg128#14 -# asm 2: movddup 312(r7=%xmm13 -movddup 312(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 256 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 272 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 288 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 304 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 320(r0=%xmm6 -movddup 320(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 328 ] x2 -# asm 1: movddup 328(r1=reg128#8 -# asm 2: movddup 328(r1=%xmm7 -movddup 328(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 336 ] x2 -# asm 1: movddup 336(r2=reg128#9 -# asm 2: movddup 336(r2=%xmm8 -movddup 336(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 344 ] x2 -# asm 1: movddup 344(r3=reg128#10 -# asm 2: movddup 344(r3=%xmm9 -movddup 344(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 352 ] x2 -# asm 1: movddup 352(r4=reg128#11 -# asm 2: movddup 352(r4=%xmm10 -movddup 352(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 360 ] x2 -# asm 1: movddup 360(r5=reg128#12 -# asm 2: movddup 360(r5=%xmm11 -movddup 360(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 368 ] x2 -# asm 1: movddup 368(r6=reg128#13 -# asm 2: movddup 368(r6=%xmm12 -movddup 368(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 376 ] x2 -# asm 1: movddup 376(r7=reg128#14 -# asm 2: movddup 376(r7=%xmm13 -movddup 376(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 320 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 336 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 352 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 368 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 384(r0=%xmm6 -movddup 384(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 392 ] x2 -# asm 1: movddup 392(r1=reg128#8 -# asm 2: movddup 392(r1=%xmm7 -movddup 392(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 400 ] x2 -# asm 1: movddup 400(r2=reg128#9 -# asm 2: movddup 400(r2=%xmm8 -movddup 400(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 408 ] x2 -# asm 1: movddup 408(r3=reg128#10 -# asm 2: movddup 408(r3=%xmm9 -movddup 408(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 416 ] x2 -# asm 1: movddup 416(r4=reg128#11 -# asm 2: movddup 416(r4=%xmm10 -movddup 416(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 424 ] x2 -# asm 1: movddup 424(r5=reg128#12 -# asm 2: movddup 424(r5=%xmm11 -movddup 424(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 432 ] x2 -# asm 1: movddup 432(r6=reg128#13 -# asm 2: movddup 432(r6=%xmm12 -movddup 432(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 440 ] x2 -# asm 1: movddup 440(r7=reg128#14 -# asm 2: movddup 440(r7=%xmm13 -movddup 440(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#13 -# asm 2: vpor r3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#10 -# asm 2: vpor r7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#14 -# asm 2: vpor r0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#15 -# asm 2: vpor r1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#13 -# asm 2: vpor r4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#8 -# asm 2: vpor r7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#14 -# asm 2: vpor r1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#15 -# asm 2: vpor r2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#11 -# asm 2: vpor r3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#12 -# asm 2: vpor r4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#9 -# asm 2: vpor r5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#13 -# asm 2: vpor r6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#7 -# asm 2: vpor r7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm13,%xmm9,%xmm7 - -# qhasm: mem128[ input_0 + 384 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm10,%xmm14,%xmm7 - -# qhasm: mem128[ input_0 + 400 ] = t0 -# asm 1: movdqu t0=reg128#8 -# asm 2: vpunpcklqdq t0=%xmm7 -vpunpcklqdq %xmm8,%xmm11,%xmm7 - -# qhasm: mem128[ input_0 + 416 ] = t0 -# asm 1: movdqu t0=reg128#7 -# asm 2: vpunpcklqdq t0=%xmm6 -vpunpcklqdq %xmm6,%xmm12,%xmm6 - -# qhasm: mem128[ input_0 + 432 ] = t0 -# asm 1: movdqu r0=reg128#7 -# asm 2: movddup 448(r0=%xmm6 -movddup 448(%rdi),%xmm6 - -# qhasm: r1 = mem64[ input_0 + 456 ] x2 -# asm 1: movddup 456(r1=reg128#8 -# asm 2: movddup 456(r1=%xmm7 -movddup 456(%rdi),%xmm7 - -# qhasm: r2 = mem64[ input_0 + 464 ] x2 -# asm 1: movddup 464(r2=reg128#9 -# asm 2: movddup 464(r2=%xmm8 -movddup 464(%rdi),%xmm8 - -# qhasm: r3 = mem64[ input_0 + 472 ] x2 -# asm 1: movddup 472(r3=reg128#10 -# asm 2: movddup 472(r3=%xmm9 -movddup 472(%rdi),%xmm9 - -# qhasm: r4 = mem64[ input_0 + 480 ] x2 -# asm 1: movddup 480(r4=reg128#11 -# asm 2: movddup 480(r4=%xmm10 -movddup 480(%rdi),%xmm10 - -# qhasm: r5 = mem64[ input_0 + 488 ] x2 -# asm 1: movddup 488(r5=reg128#12 -# asm 2: movddup 488(r5=%xmm11 -movddup 488(%rdi),%xmm11 - -# qhasm: r6 = mem64[ input_0 + 496 ] x2 -# asm 1: movddup 496(r6=reg128#13 -# asm 2: movddup 496(r6=%xmm12 -movddup 496(%rdi),%xmm12 - -# qhasm: r7 = mem64[ input_0 + 504 ] x2 -# asm 1: movddup 504(r7=reg128#14 -# asm 2: movddup 504(r7=%xmm13 -movddup 504(%rdi),%xmm13 - -# qhasm: v00 = r0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = r4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = r4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r0=reg128#15 -# asm 2: vpor r0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: r4 = v01 | v11 -# asm 1: vpor r4=reg128#7 -# asm 2: vpor r4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = r1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = r5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = r5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r1=reg128#11 -# asm 2: vpor r1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#8 -# asm 2: vpor r5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = r2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = r6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = r6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#9 -# asm 2: vpor r6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = r3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = r7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = r7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = r0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = r2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = r2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r0=reg128#10 -# asm 2: vpor r0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: r2 = v01 | v11 -# asm 1: vpor r2=reg128#12 -# asm 2: vpor r2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = r1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = r3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = r3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r1=reg128#13 -# asm 2: vpor r1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = r4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = r6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = r6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r4=reg128#11 -# asm 2: vpor r4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: r6 = v01 | v11 -# asm 1: vpor r6=reg128#7 -# asm 2: vpor r6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = r5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = r7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = r7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = r0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = r1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = r1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r0=reg128#4 -# asm 2: vpor r0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: r1 = v01 | v11 -# asm 1: vpor r1=reg128#8 -# asm 2: vpor r1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = r2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = r3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = r3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r2=reg128#9 -# asm 2: vpor r2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: r3 = v01 | v11 -# asm 1: vpor r3=reg128#1 -# asm 2: vpor r3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = r4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = r5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = r5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r4=reg128#10 -# asm 2: vpor r4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: r5 = v01 | v11 -# asm 1: vpor r5=reg128#3 -# asm 2: vpor r5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = r6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = r7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = r7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,r6=reg128#5 -# asm 2: vpor r6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: r7 = v01 | v11 -# asm 1: vpor r7=reg128#2 -# asm 2: vpor r7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: t0 = r0[0]r1[0] -# asm 1: vpunpcklqdq t0=reg128#4 -# asm 2: vpunpcklqdq t0=%xmm3 -vpunpcklqdq %xmm7,%xmm3,%xmm3 - -# qhasm: mem128[ input_0 + 448 ] = t0 -# asm 1: movdqu t0=reg128#1 -# asm 2: vpunpcklqdq t0=%xmm0 -vpunpcklqdq %xmm0,%xmm8,%xmm0 - -# qhasm: mem128[ input_0 + 464 ] = t0 -# asm 1: movdqu t0=reg128#1 -# asm 2: vpunpcklqdq t0=%xmm0 -vpunpcklqdq %xmm2,%xmm9,%xmm0 - -# qhasm: mem128[ input_0 + 480 ] = t0 -# asm 1: movdqu t0=reg128#1 -# asm 2: vpunpcklqdq t0=%xmm0 -vpunpcklqdq %xmm1,%xmm4,%xmm0 - -# qhasm: mem128[ input_0 + 496 ] = t0 -# asm 1: movdqu s1=int64#2 -# asm 2: mov s1=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#4 -# asm 2: movq 0(s0=%rcx -movq 0(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE348864F_SSE_store2(unsigned char *dest, gf a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE348864F_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE348864F_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE348864F_SSE_irr_load(uint64_t *out, const unsigned char *in) { - int i, j; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE348864F_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - out[i] = 0; - } - - for (i = SYS_T; i >= 0; i--) { - for (j = 0; j < GFBITS; j++) { - out[j] <<= 1; - out[j] |= (irr[i] >> j) & 1; - } - } -} - -void PQCLEAN_MCELIECE348864F_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE348864F_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -gf PQCLEAN_MCELIECE348864F_SSE_bitrev(gf a) { - a = ((a & 0x00FF) << 8) | ((a & 0xFF00) >> 8); - a = ((a & 0x0F0F) << 4) | ((a & 0xF0F0) >> 4); - a = ((a & 0x3333) << 2) | ((a & 0xCCCC) >> 2); - a = ((a & 0x5555) << 1) | ((a & 0xAAAA) >> 1); - - return a >> 4; -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE348864F_SSE_vec128_set2x( PQCLEAN_MCELIECE348864F_SSE_load8(in), PQCLEAN_MCELIECE348864F_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE348864F_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE348864F_SSE_store8(out + 0, PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE348864F_SSE_store8(out + 8, PQCLEAN_MCELIECE348864F_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece348864f/sse/util.h b/crypto_kem/mceliece/mceliece348864f/sse/util.h deleted file mode 100644 index d7c14805..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/util.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_UTIL_H -#define PQCLEAN_MCELIECE348864F_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "gf.h" -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE348864F_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE348864F_SSE_store2(unsigned char *dest, gf a); - -uint16_t PQCLEAN_MCELIECE348864F_SSE_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE348864F_SSE_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE348864F_SSE_irr_load(uint64_t *out, const unsigned char *in); - -void PQCLEAN_MCELIECE348864F_SSE_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE348864F_SSE_load8(const unsigned char *in); - -gf PQCLEAN_MCELIECE348864F_SSE_bitrev(gf a); - -vec128 PQCLEAN_MCELIECE348864F_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE348864F_SSE_store16(unsigned char *out, vec128 in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/vec.c b/crypto_kem/mceliece/mceliece348864f/sse/vec.c deleted file mode 100644 index 5745ff95..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/vec.c +++ /dev/null @@ -1,17 +0,0 @@ - -#include "vec.h" - -#include "params.h" - -void PQCLEAN_MCELIECE348864F_SSE_vec_mul(uint64_t *h, const uint64_t *f, const uint64_t *g) { - PQCLEAN_MCELIECE348864F_SSE_vec_mul_asm(h, f, g, 8); -} - -void PQCLEAN_MCELIECE348864F_SSE_vec_add(uint64_t *h, const uint64_t *f, const uint64_t *g) { - int b; - - for (b = 0; b < GFBITS; b++) { - h[b] = f[b] ^ g[b]; - } -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/vec.h b/crypto_kem/mceliece/mceliece348864f/sse/vec.h deleted file mode 100644 index ffdc28be..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/vec.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_VEC_H -#define PQCLEAN_MCELIECE348864F_SSE_VEC_H - -#include - -extern void PQCLEAN_MCELIECE348864F_SSE_vec_mul_asm(uint64_t *, const uint64_t *, const uint64_t *, int); - -void PQCLEAN_MCELIECE348864F_SSE_vec_mul(uint64_t *h, const uint64_t *f, const uint64_t *g); -void PQCLEAN_MCELIECE348864F_SSE_vec_add(uint64_t *h, const uint64_t *f, const uint64_t *g); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/sse/vec128.c b/crypto_kem/mceliece/mceliece348864f/sse/vec128.c deleted file mode 100644 index 270806f3..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/vec128.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE348864F_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE348864F_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE348864F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE348864F_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE348864F_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE348864F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE348864F_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE348864F_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS]; - - result[0] = in[0] ^ in[6]; - result[1] = in[11]; - result[2] = in[1] ^ in[7]; - result[3] = in[6]; - result[4] = in[2] ^ in[11] ^ in[8]; - result[5] = in[7]; - result[6] = in[3] ^ in[9]; - result[7] = in[8]; - result[8] = in[4] ^ in[10]; - result[9] = in[9]; - result[10] = in[5] ^ in[11]; - result[11] = in[10]; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE348864F_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE348864F_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tmp_11, out, in); // 11 - - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(tmp_1111, out, tmp_11); // 1111 - - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(out, out, tmp_1111); // 11111111 - - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(out, out, tmp_11); // 1111111111 - - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE348864F_SSE_vec128_mul(out, out, in); // 11111111111 - - PQCLEAN_MCELIECE348864F_SSE_vec128_sq(out, out); // 111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece348864f/sse/vec128.h b/crypto_kem/mceliece/mceliece348864f/sse/vec128.h deleted file mode 100644 index 236de8d3..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/vec128.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_SSE_VEC128_H -#define PQCLEAN_MCELIECE348864F_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE348864F_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE348864F_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE348864F_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE348864F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE348864F_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE348864F_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE348864F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE348864F_SSE_vec128_sq(vec128 * /*out*/, const vec128 * /*in*/); -void PQCLEAN_MCELIECE348864F_SSE_vec128_inv(vec128 * /*out*/, const vec128 * /*in*/); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece348864f/sse/vec128_mul_asm.S deleted file mode 100644 index 7eba1915..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/vec128_mul_asm.S +++ /dev/null @@ -1,1736 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864F_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE348864F_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE348864F_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE348864F_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#2 -# asm 2: movdqu 176(a11=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: r11 = a11 & b0 -# asm 1: vpand r11=reg128#3 -# asm 2: vpand r11=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r12 = a11 & mem128[input_2 + 16] -# asm 1: vpand 16(r12=reg128#4 -# asm 2: vpand 16(r12=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r13 = a11 & mem128[input_2 + 32] -# asm 1: vpand 32(r13=reg128#5 -# asm 2: vpand 32(r13=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r14 = a11 & mem128[input_2 + 48] -# asm 1: vpand 48(r14=reg128#6 -# asm 2: vpand 48(r14=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r15 = a11 & mem128[input_2 + 64] -# asm 1: vpand 64(r15=reg128#7 -# asm 2: vpand 64(r15=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r16 = a11 & mem128[input_2 + 80] -# asm 1: vpand 80(r16=reg128#8 -# asm 2: vpand 80(r16=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r17 = a11 & mem128[input_2 + 96] -# asm 1: vpand 96(r17=reg128#9 -# asm 2: vpand 96(r17=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r18 = a11 & mem128[input_2 + 112] -# asm 1: vpand 112(r18=reg128#10 -# asm 2: vpand 112(r18=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r19 = a11 & mem128[input_2 + 128] -# asm 1: vpand 128(r19=reg128#11 -# asm 2: vpand 128(r19=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r20 = a11 & mem128[input_2 + 144] -# asm 1: vpand 144(r20=reg128#12 -# asm 2: vpand 144(r20=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r21 = a11 & mem128[input_2 + 160] -# asm 1: vpand 160(r21=reg128#13 -# asm 2: vpand 160(r21=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r22 = a11 & mem128[input_2 + 176] -# asm 1: vpand 176(r22=reg128#2 -# asm 2: vpand 176(r22=%xmm1 -vpand 176(%rdx),%xmm1,%xmm1 - -# qhasm: r13 ^= r22 -# asm 1: pxor r10=reg128#2 -# asm 2: movdqa r10=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#14 -# asm 2: movdqu 160(a10=%xmm13 -movdqu 160(%rsi),%xmm13 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r21 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#14 -# asm 2: movdqu 144(a9=%xmm13 -movdqu 144(%rsi),%xmm13 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r20 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#14 -# asm 2: movdqu 128(a8=%xmm13 -movdqu 128(%rsi),%xmm13 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r19 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#14 -# asm 2: movdqu 112(a7=%xmm13 -movdqu 112(%rsi),%xmm13 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r18 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#14 -# asm 2: movdqu 96(a6=%xmm13 -movdqu 96(%rsi),%xmm13 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r17 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#14 -# asm 2: movdqu 80(a5=%xmm13 -movdqu 80(%rsi),%xmm13 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r16 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#14 -# asm 2: movdqu 64(a4=%xmm13 -movdqu 64(%rsi),%xmm13 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r15 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#14 -# asm 2: movdqu 48(a3=%xmm13 -movdqu 48(%rsi),%xmm13 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r14 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#14 -# asm 2: movdqu 32(a2=%xmm13 -movdqu 32(%rsi),%xmm13 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r13 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#14 -# asm 2: movdqu 16(a1=%xmm13 -movdqu 16(%rsi),%xmm13 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#15 -# asm 2: vpand r=%xmm14 -vpand %xmm0,%xmm13,%xmm14 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 16(r=%xmm14 -vpand 16(%rdx),%xmm13,%xmm14 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 32(r=%xmm14 -vpand 32(%rdx),%xmm13,%xmm14 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 48(r=%xmm14 -vpand 48(%rdx),%xmm13,%xmm14 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 64(r=%xmm14 -vpand 64(%rdx),%xmm13,%xmm14 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 80(r=%xmm14 -vpand 80(%rdx),%xmm13,%xmm14 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 96(r=%xmm14 -vpand 96(%rdx),%xmm13,%xmm14 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 112(r=%xmm14 -vpand 112(%rdx),%xmm13,%xmm14 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 128(r=%xmm14 -vpand 128(%rdx),%xmm13,%xmm14 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 144(r=%xmm14 -vpand 144(%rdx),%xmm13,%xmm14 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 160(r=%xmm14 -vpand 160(%rdx),%xmm13,%xmm14 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#14 -# asm 2: vpand 176(r=%xmm13 -vpand 176(%rdx),%xmm13,%xmm13 - -# qhasm: r12 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#14 -# asm 2: movdqu 0(a0=%xmm13 -movdqu 0(%rsi),%xmm13 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm13,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm13,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm13,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm13,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm13,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm13,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm13,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm13,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm13,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm13,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm13,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r11_stack=stack64#1 -# asm 2: movq r11_stack=608(%rsp) -movq %r11,608(%rsp) - -# qhasm: r12_stack = caller_r12 -# asm 1: movq r12_stack=stack64#2 -# asm 2: movq r12_stack=616(%rsp) -movq %r12,616(%rsp) - -# qhasm: r13_stack = caller_r13 -# asm 1: movq r13_stack=stack64#3 -# asm 2: movq r13_stack=624(%rsp) -movq %r13,624(%rsp) - -# qhasm: r14_stack = caller_r14 -# asm 1: movq r14_stack=stack64#4 -# asm 2: movq r14_stack=632(%rsp) -movq %r14,632(%rsp) - -# qhasm: r15_stack = caller_r15 -# asm 1: movq r15_stack=stack64#5 -# asm 2: movq r15_stack=640(%rsp) -movq %r15,640(%rsp) - -# qhasm: rbx_stack = caller_rbx -# asm 1: movq rbx_stack=stack64#6 -# asm 2: movq rbx_stack=648(%rsp) -movq %rbx,648(%rsp) - -# qhasm: ptr = &buf -# asm 1: leaq ptr=int64#5 -# asm 2: leaq ptr=%r8 -leaq 0(%rsp),%r8 - -# qhasm: tmp = input_3 -# asm 1: mov tmp=int64#6 -# asm 2: mov tmp=%r9 -mov %rcx,%r9 - -# qhasm: tmp *= 11 -# asm 1: imulq $11,tmp=int64#6 -# asm 2: imulq $11,tmp=%r9 -imulq $11,%r9,%r9 - -# qhasm: input_2 += tmp -# asm 1: add b11=reg128#1 -# asm 2: movddup 0(b11=%xmm0 -movddup 0(%rdx),%xmm0 - -# qhasm: input_2 -= input_3 -# asm 1: sub r16=reg128#3 -# asm 2: vpand r16=%xmm2 -vpand %xmm1,%xmm0,%xmm2 - -# qhasm: mem128[ ptr + 256 ] = r16 -# asm 1: movdqu r15=reg128#4 -# asm 2: vpand r15=%xmm3 -vpand %xmm2,%xmm0,%xmm3 - -# qhasm: a3[0] = mem64[ input_1 + 24 ] -# asm 1: pinsrq $0x0,24(r14=reg128#6 -# asm 2: vpand r14=%xmm5 -vpand %xmm4,%xmm0,%xmm5 - -# qhasm: a2[0] = mem64[ input_1 + 16 ] -# asm 1: pinsrq $0x0,16(r13=reg128#8 -# asm 2: vpand r13=%xmm7 -vpand %xmm6,%xmm0,%xmm7 - -# qhasm: a1[0] = mem64[ input_1 + 8 ] -# asm 1: pinsrq $0x0,8(r12=reg128#10 -# asm 2: vpand r12=%xmm9 -vpand %xmm8,%xmm0,%xmm9 - -# qhasm: a0[0] = mem64[ input_1 + 0 ] -# asm 1: pinsrq $0x0,0(r11=reg128#1 -# asm 2: vpand r11=%xmm0 -vpand %xmm10,%xmm0,%xmm0 - -# qhasm: b10 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b10=reg128#12 -# asm 2: movddup 0(b10=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm2,%xmm11,%xmm3 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm4,%xmm11,%xmm3 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm6,%xmm11,%xmm3 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm8,%xmm11,%xmm3 - -# qhasm: r11 ^= r -# asm 1: pxor r10=reg128#4 -# asm 2: vpand r10=%xmm3 -vpand %xmm10,%xmm11,%xmm3 - -# qhasm: b9 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b9=reg128#12 -# asm 2: movddup 0(b9=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm2,%xmm11,%xmm5 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm4,%xmm11,%xmm5 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm6,%xmm11,%xmm5 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm8,%xmm11,%xmm5 - -# qhasm: r10 ^= r -# asm 1: pxor r9=reg128#6 -# asm 2: vpand r9=%xmm5 -vpand %xmm10,%xmm11,%xmm5 - -# qhasm: b8 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b8=reg128#12 -# asm 2: movddup 0(b8=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm2,%xmm11,%xmm7 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm4,%xmm11,%xmm7 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm6,%xmm11,%xmm7 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm8,%xmm11,%xmm7 - -# qhasm: r9 ^= r -# asm 1: pxor r8=reg128#8 -# asm 2: vpand r8=%xmm7 -vpand %xmm10,%xmm11,%xmm7 - -# qhasm: b7 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b7=reg128#12 -# asm 2: movddup 0(b7=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm2,%xmm11,%xmm9 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm4,%xmm11,%xmm9 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm6,%xmm11,%xmm9 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm8,%xmm11,%xmm9 - -# qhasm: r8 ^= r -# asm 1: pxor r7=reg128#10 -# asm 2: vpand r7=%xmm9 -vpand %xmm10,%xmm11,%xmm9 - -# qhasm: b6 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b6=reg128#12 -# asm 2: movddup 0(b6=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm2,%xmm11,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm4,%xmm11,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm6,%xmm11,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm8,%xmm11,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r6=reg128#1 -# asm 2: vpand r6=%xmm0 -vpand %xmm10,%xmm11,%xmm0 - -# qhasm: b5 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b5=reg128#12 -# asm 2: movddup 0(b5=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm2,%xmm11,%xmm3 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm4,%xmm11,%xmm3 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm6,%xmm11,%xmm3 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#4 -# asm 2: vpand r=%xmm3 -vpand %xmm8,%xmm11,%xmm3 - -# qhasm: r6 ^= r -# asm 1: pxor r5=reg128#4 -# asm 2: vpand r5=%xmm3 -vpand %xmm10,%xmm11,%xmm3 - -# qhasm: b4 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b4=reg128#12 -# asm 2: movddup 0(b4=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm2,%xmm11,%xmm5 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm4,%xmm11,%xmm5 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm6,%xmm11,%xmm5 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#6 -# asm 2: vpand r=%xmm5 -vpand %xmm8,%xmm11,%xmm5 - -# qhasm: r5 ^= r -# asm 1: pxor r4=reg128#6 -# asm 2: vpand r4=%xmm5 -vpand %xmm10,%xmm11,%xmm5 - -# qhasm: b3 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b3=reg128#12 -# asm 2: movddup 0(b3=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm2,%xmm11,%xmm7 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm4,%xmm11,%xmm7 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm6,%xmm11,%xmm7 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#8 -# asm 2: vpand r=%xmm7 -vpand %xmm8,%xmm11,%xmm7 - -# qhasm: r4 ^= r -# asm 1: pxor r3=reg128#8 -# asm 2: vpand r3=%xmm7 -vpand %xmm10,%xmm11,%xmm7 - -# qhasm: b2 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b2=reg128#12 -# asm 2: movddup 0(b2=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm2,%xmm11,%xmm9 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm4,%xmm11,%xmm9 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm6,%xmm11,%xmm9 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#10 -# asm 2: vpand r=%xmm9 -vpand %xmm8,%xmm11,%xmm9 - -# qhasm: r3 ^= r -# asm 1: pxor r2=reg128#10 -# asm 2: vpand r2=%xmm9 -vpand %xmm10,%xmm11,%xmm9 - -# qhasm: b1 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b1=reg128#12 -# asm 2: movddup 0(b1=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#13 -# asm 2: vpand r=%xmm12 -vpand %xmm1,%xmm11,%xmm12 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm2,%xmm11,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm4,%xmm11,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm6,%xmm11,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm8,%xmm11,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r1=reg128#1 -# asm 2: vpand r1=%xmm0 -vpand %xmm10,%xmm11,%xmm0 - -# qhasm: b0 = mem64[ input_2 + 0 ] x2 -# asm 1: movddup 0(b0=reg128#12 -# asm 2: movddup 0(b0=%xmm11 -movddup 0(%rdx),%xmm11 - -# qhasm: input_2 -= input_3 -# asm 1: sub r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm1,%xmm11,%xmm1 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm2,%xmm11,%xmm1 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm4,%xmm11,%xmm1 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm6,%xmm11,%xmm1 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#2 -# asm 2: vpand r=%xmm1 -vpand %xmm8,%xmm11,%xmm1 - -# qhasm: r1 ^= r -# asm 1: pxor r0=reg128#2 -# asm 2: vpand r0=%xmm1 -vpand %xmm10,%xmm11,%xmm1 - -# qhasm: mem128[ ptr + 64 ] = r4 -# asm 1: movdqu h22=int64#2 -# asm 2: movq 264(h22=%rsi -movq 264(%r8),%rsi - -# qhasm: h13 = h22 -# asm 1: mov h13=int64#3 -# asm 2: mov h13=%rdx -mov %rsi,%rdx - -# qhasm: h10 = h22 -# asm 1: mov h10=int64#2 -# asm 2: mov h10=%rsi -mov %rsi,%rsi - -# qhasm: h21 = mem64[ ptr + 248 ] -# asm 1: movq 248(h21=int64#4 -# asm 2: movq 248(h21=%rcx -movq 248(%r8),%rcx - -# qhasm: h12 = h21 -# asm 1: mov h12=int64#6 -# asm 2: mov h12=%r9 -mov %rcx,%r9 - -# qhasm: h9 = h21 -# asm 1: mov h9=int64#4 -# asm 2: mov h9=%rcx -mov %rcx,%rcx - -# qhasm: h20 = mem64[ ptr + 232 ] -# asm 1: movq 232(h20=int64#7 -# asm 2: movq 232(h20=%rax -movq 232(%r8),%rax - -# qhasm: h11 = h20 -# asm 1: mov h11=int64#8 -# asm 2: mov h11=%r10 -mov %rax,%r10 - -# qhasm: h8 = h20 -# asm 1: mov h8=int64#7 -# asm 2: mov h8=%rax -mov %rax,%rax - -# qhasm: h19 = mem64[ ptr + 216 ] -# asm 1: movq 216(h19=int64#9 -# asm 2: movq 216(h19=%r11 -movq 216(%r8),%r11 - -# qhasm: h10 ^= h19 -# asm 1: xor h7=int64#9 -# asm 2: mov h7=%r11 -mov %r11,%r11 - -# qhasm: h18 = mem64[ ptr + 200 ] -# asm 1: movq 200(h18=int64#10 -# asm 2: movq 200(h18=%r12 -movq 200(%r8),%r12 - -# qhasm: h9 ^= h18 -# asm 1: xor h6=int64#10 -# asm 2: mov h6=%r12 -mov %r12,%r12 - -# qhasm: h17 = mem64[ ptr + 184 ] -# asm 1: movq 184(h17=int64#11 -# asm 2: movq 184(h17=%r13 -movq 184(%r8),%r13 - -# qhasm: h8 ^= h17 -# asm 1: xor h5=int64#11 -# asm 2: mov h5=%r13 -mov %r13,%r13 - -# qhasm: h16 = mem64[ ptr + 168 ] -# asm 1: movq 168(h16=int64#12 -# asm 2: movq 168(h16=%r14 -movq 168(%r8),%r14 - -# qhasm: h16 ^= *(uint64 *) ( ptr + 256 ) -# asm 1: xorq 256(h4=int64#12 -# asm 2: mov h4=%r14 -mov %r14,%r14 - -# qhasm: h15 = mem64[ ptr + 152 ] -# asm 1: movq 152(h15=int64#13 -# asm 2: movq 152(h15=%r15 -movq 152(%r8),%r15 - -# qhasm: h15 ^= *(uint64 *) ( ptr + 240 ) -# asm 1: xorq 240(h3=int64#13 -# asm 2: mov h3=%r15 -mov %r15,%r15 - -# qhasm: h14 = mem64[ ptr + 136 ] -# asm 1: movq 136(h14=int64#14 -# asm 2: movq 136(h14=%rbx -movq 136(%r8),%rbx - -# qhasm: h14 ^= *(uint64 *) ( ptr + 224 ) -# asm 1: xorq 224(h2=int64#14 -# asm 2: mov h2=%rbx -mov %rbx,%rbx - -# qhasm: h13 ^= *(uint64 *) ( ptr + 120 ) -# asm 1: xorq 120(h1=int64#3 -# asm 2: mov h1=%rdx -mov %rdx,%rdx - -# qhasm: h12 ^= *(uint64 *) ( ptr + 104 ) -# asm 1: xorq 104(h0=int64#6 -# asm 2: mov h0=%r9 -mov %r9,%r9 - -# qhasm: h11 ^= *(uint64 *) ( ptr + 176 ) -# asm 1: xorq 176(caller_r11=int64#9 -# asm 2: movq caller_r11=%r11 -movq 608(%rsp),%r11 - -# qhasm: caller_r12 = r12_stack -# asm 1: movq caller_r12=int64#10 -# asm 2: movq caller_r12=%r12 -movq 616(%rsp),%r12 - -# qhasm: caller_r13 = r13_stack -# asm 1: movq caller_r13=int64#11 -# asm 2: movq caller_r13=%r13 -movq 624(%rsp),%r13 - -# qhasm: caller_r14 = r14_stack -# asm 1: movq caller_r14=int64#12 -# asm 2: movq caller_r14=%r14 -movq 632(%rsp),%r14 - -# qhasm: caller_r15 = r15_stack -# asm 1: movq caller_r15=int64#13 -# asm 2: movq caller_r15=%r15 -movq 640(%rsp),%r15 - -# qhasm: caller_rbx = rbx_stack -# asm 1: movq caller_rbx=int64#14 -# asm 2: movq caller_rbx=%rbx -movq 648(%rsp),%rbx - -# qhasm: return -add %r11,%rsp -ret diff --git a/crypto_kem/mceliece/mceliece348864f/sse/vec_reduce_asm.S b/crypto_kem/mceliece/mceliece348864f/sse/vec_reduce_asm.S deleted file mode 100644 index 59d99dbb..00000000 --- a/crypto_kem/mceliece/mceliece348864f/sse/vec_reduce_asm.S +++ /dev/null @@ -1,356 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 t - -# qhasm: int64 c - -# qhasm: int64 r - -# qhasm: enter vec_reduce_asm -.p2align 5 -.global _PQCLEAN_MCELIECE348864F_SSE_vec_reduce_asm -.global PQCLEAN_MCELIECE348864F_SSE_vec_reduce_asm -_PQCLEAN_MCELIECE348864F_SSE_vec_reduce_asm: -PQCLEAN_MCELIECE348864F_SSE_vec_reduce_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: r = 0 -# asm 1: mov $0,>r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t = mem64[ input_0 + 88 ] -# asm 1: movq 88(t=int64#2 -# asm 2: movq 88(t=%rsi -movq 88(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 80(t=%rsi -movq 80(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 72(t=%rsi -movq 72(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 64(t=%rsi -movq 64(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 56(t=%rsi -movq 56(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 48(t=%rsi -movq 48(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 40(t=%rsi -movq 40(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 32(t=%rsi -movq 32(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 24(t=%rsi -movq 24(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 16(t=%rsi -movq 16(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#2 -# asm 2: movq 8(t=%rsi -movq 8(%rdi),%rsi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t=int64#1 -# asm 2: movq 0(t=%rdi -movq 0(%rdi),%rdi - -# qhasm: c = count(t) -# asm 1: popcnt c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rdi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE348864F_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/vec/api.h b/crypto_kem/mceliece/mceliece348864f/vec/api.h deleted file mode 100644 index e5fa7b1b..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/api.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_API_H -#define PQCLEAN_MCELIECE348864F_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE348864F_VEC_CRYPTO_ALGNAME "Classic McEliece 348864f" -#define PQCLEAN_MCELIECE348864F_VEC_CRYPTO_PUBLICKEYBYTES 261120 -#define PQCLEAN_MCELIECE348864F_VEC_CRYPTO_SECRETKEYBYTES 6452 -#define PQCLEAN_MCELIECE348864F_VEC_CRYPTO_CIPHERTEXTBYTES 128 -#define PQCLEAN_MCELIECE348864F_VEC_CRYPTO_BYTES 32 - - - -int PQCLEAN_MCELIECE348864F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE348864F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE348864F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/benes.c b/crypto_kem/mceliece/mceliece348864f/vec/benes.c deleted file mode 100644 index 254f8a85..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/benes.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -/* one layer of the benes network */ -static void layer(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE348864F_VEC_benes(uint64_t *r, const unsigned char *bits, int rev) { - int i; - - const unsigned char *cond_ptr; - int inc, low; - - uint64_t cond[64]; - - // - - if (rev == 0) { - inc = 256; - cond_ptr = bits; - } else { - inc = -256; - cond_ptr = bits + (2 * GFBITS - 2) * 256; - } - - // - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(r, r); - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864F_VEC_load4(cond_ptr + i * 4); - } - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(cond, cond); - layer(r, cond, low); - cond_ptr += inc; - } - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(r, r); - - for (low = 0; low <= 5; low++) { - for (i = 0; i < 32; i++) { - cond[i] = PQCLEAN_MCELIECE348864F_VEC_load8(cond_ptr + i * 8); - } - layer(r, cond, low); - cond_ptr += inc; - } - for (low = 4; low >= 0; low--) { - for (i = 0; i < 32; i++) { - cond[i] = PQCLEAN_MCELIECE348864F_VEC_load8(cond_ptr + i * 8); - } - layer(r, cond, low); - cond_ptr += inc; - } - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(r, r); - - for (low = 5; low >= 0; low--) { - for (i = 0; i < 64; i++) { - cond[i] = PQCLEAN_MCELIECE348864F_VEC_load4(cond_ptr + i * 4); - } - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(cond, cond); - layer(r, cond, low); - cond_ptr += inc; - } - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(r, r); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/benes.h b/crypto_kem/mceliece/mceliece348864f/vec/benes.h deleted file mode 100644 index 51fdd3ea..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_BENES_H -#define PQCLEAN_MCELIECE348864F_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE348864F_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/bm.c b/crypto_kem/mceliece/mceliece348864f/vec/bm.c deleted file mode 100644 index 281864e0..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/bm.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" -#include "util.h" - -#include - -static inline uint64_t mask_nonzero(gf a) { - uint64_t ret = a; - - ret -= 1; - ret >>= 63; - ret -= 1; - - return ret; -} - -static inline uint64_t mask_leq(uint16_t a, uint16_t b) { - uint64_t a_tmp = a; - uint64_t b_tmp = b; - uint64_t ret = b_tmp - a_tmp; - - ret >>= 63; - ret -= 1; - - return ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < GFBITS; i++) { - buf[i] = in[i]; - } - for (i = GFBITS; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static inline gf vec_reduce(const vec *in) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -static void update(vec *in, const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[i] = (in[i] >> 1) | (tmp << 63); - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE348864F_VEC_bm(vec *out, vec in[][ GFBITS ]) { - uint16_t i; - uint16_t N, L; - - vec prod[ GFBITS ]; - vec in_tmp[ GFBITS ]; - - vec d_vec[ GFBITS ]; - vec b_vec[ GFBITS ]; - vec B[ GFBITS ], C[ GFBITS ]; - vec B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - vec mask, t; - - gf d, b, c0 = 1; - - gf coefs[SYS_T * 2]; - - // init - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - - C[0] = 0; - B[0] = 1; - B[0] <<= 63; - - for (i = 1; i < GFBITS; i++) { - B[i] = C[i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - in_tmp[i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - // computing d - - PQCLEAN_MCELIECE348864F_VEC_vec_mul(prod, in_tmp, C); - - update(in_tmp, coefs[N]); - - d = vec_reduce(prod); - - t = PQCLEAN_MCELIECE348864F_VEC_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - // 3 cases - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - d_vec[i] = PQCLEAN_MCELIECE348864F_VEC_vec_setbits((d >> i) & 1); - b_vec[i] = PQCLEAN_MCELIECE348864F_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_mul(B_tmp, d_vec, B); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(C_tmp, b_vec, C); - - vec_cmov(B, C, (uint16_t)mask); - update(B, mask & c0); - - for (i = 0; i < GFBITS; i++) { - C[i] = B_tmp[i] ^ C_tmp[i]; - } - - c0 = (gf)(t >> 32); - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - - } - - c0 = PQCLEAN_MCELIECE348864F_VEC_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = PQCLEAN_MCELIECE348864F_VEC_vec_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_mul(out, out, C); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/bm.h b/crypto_kem/mceliece/mceliece348864f/vec/bm.h deleted file mode 100644 index 27e4369d..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_BM_H -#define PQCLEAN_MCELIECE348864F_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE348864F_VEC_bm(vec * /*out*/, vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/consts.inc b/crypto_kem/mceliece/mceliece348864f/vec/consts.inc deleted file mode 100644 index a728344f..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/consts.inc +++ /dev/null @@ -1,888 +0,0 @@ -//64 -{ - 0XF00F0FF0F00F0FF0, - 0XF0F00F0F0F0FF0F0, - 0X0FF00FF00FF00FF0, - 0XAA5555AAAA5555AA, - 0XF00F0FF0F00F0FF0, - 0X33CCCC33CC3333CC, - 0XFFFF0000FFFF0000, - 0XCC33CC3333CC33CC, - 0X33CC33CC33CC33CC, - 0X5A5A5A5A5A5A5A5A, - 0XFF00FF00FF00FF00, - 0XF00F0FF0F00F0FF0, -}, -//128 -{ - 0X3C3C3C3C3C3C3C3C, - 0XF0F0F0F0F0F0F0F0, - 0X5555AAAA5555AAAA, - 0XCC3333CCCC3333CC, - 0XC33CC33CC33CC33C, - 0X55555555AAAAAAAA, - 0X33333333CCCCCCCC, - 0X00FF00FFFF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0X0000000000000000, - 0X0000FFFFFFFF0000, - 0XF0F00F0F0F0FF0F0, -}, -{ - 0X3C3C3C3C3C3C3C3C, - 0X0F0F0F0F0F0F0F0F, - 0XAAAA5555AAAA5555, - 0XCC3333CCCC3333CC, - 0XC33CC33CC33CC33C, - 0X55555555AAAAAAAA, - 0X33333333CCCCCCCC, - 0XFF00FF0000FF00FF, - 0X0F0F0F0F0F0F0F0F, - 0X0000000000000000, - 0X0000FFFFFFFF0000, - 0XF0F00F0F0F0FF0F0, -}, -//256 -{ - 0XAA55AA5555AA55AA, - 0XCC33CC3333CC33CC, - 0X33CCCC33CC3333CC, - 0X55555555AAAAAAAA, - 0XFF0000FF00FFFF00, - 0X3CC33CC3C33CC33C, - 0X5555AAAA5555AAAA, - 0X0FF00FF00FF00FF0, - 0XCCCC33333333CCCC, - 0XF0F0F0F0F0F0F0F0, - 0X00FFFF0000FFFF00, - 0XC33CC33CC33CC33C, -}, -{ - 0X55AA55AAAA55AA55, - 0XCC33CC3333CC33CC, - 0XCC3333CC33CCCC33, - 0X55555555AAAAAAAA, - 0XFF0000FF00FFFF00, - 0XC33CC33C3CC33CC3, - 0XAAAA5555AAAA5555, - 0XF00FF00FF00FF00F, - 0X3333CCCCCCCC3333, - 0X0F0F0F0F0F0F0F0F, - 0XFF0000FFFF0000FF, - 0XC33CC33CC33CC33C, -}, -{ - 0XAA55AA5555AA55AA, - 0X33CC33CCCC33CC33, - 0XCC3333CC33CCCC33, - 0X55555555AAAAAAAA, - 0X00FFFF00FF0000FF, - 0X3CC33CC3C33CC33C, - 0X5555AAAA5555AAAA, - 0X0FF00FF00FF00FF0, - 0X3333CCCCCCCC3333, - 0XF0F0F0F0F0F0F0F0, - 0X00FFFF0000FFFF00, - 0XC33CC33CC33CC33C, -}, -{ - 0X55AA55AAAA55AA55, - 0X33CC33CCCC33CC33, - 0X33CCCC33CC3333CC, - 0X55555555AAAAAAAA, - 0X00FFFF00FF0000FF, - 0XC33CC33C3CC33CC3, - 0XAAAA5555AAAA5555, - 0XF00FF00FF00FF00F, - 0XCCCC33333333CCCC, - 0X0F0F0F0F0F0F0F0F, - 0XFF0000FFFF0000FF, - 0XC33CC33CC33CC33C, -}, -//512 -{ - 0X6699669999669966, - 0X33CCCC33CC3333CC, - 0XA5A5A5A55A5A5A5A, - 0X3C3CC3C3C3C33C3C, - 0XF00FF00F0FF00FF0, - 0X55AA55AA55AA55AA, - 0X3C3CC3C3C3C33C3C, - 0X0F0F0F0FF0F0F0F0, - 0X55AA55AA55AA55AA, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0X33CCCC33CC3333CC, - 0XA5A5A5A55A5A5A5A, - 0X3C3CC3C3C3C33C3C, - 0X0FF00FF0F00FF00F, - 0XAA55AA55AA55AA55, - 0X3C3CC3C3C3C33C3C, - 0XF0F0F0F00F0F0F0F, - 0XAA55AA55AA55AA55, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -{ - 0X6699669999669966, - 0X33CCCC33CC3333CC, - 0X5A5A5A5AA5A5A5A5, - 0XC3C33C3C3C3CC3C3, - 0X0FF00FF0F00FF00F, - 0XAA55AA55AA55AA55, - 0XC3C33C3C3C3CC3C3, - 0X0F0F0F0FF0F0F0F0, - 0XAA55AA55AA55AA55, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0X33CCCC33CC3333CC, - 0X5A5A5A5AA5A5A5A5, - 0XC3C33C3C3C3CC3C3, - 0XF00FF00F0FF00FF0, - 0X55AA55AA55AA55AA, - 0XC3C33C3C3C3CC3C3, - 0XF0F0F0F00F0F0F0F, - 0X55AA55AA55AA55AA, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -{ - 0X6699669999669966, - 0XCC3333CC33CCCC33, - 0X5A5A5A5AA5A5A5A5, - 0X3C3CC3C3C3C33C3C, - 0X0FF00FF0F00FF00F, - 0X55AA55AA55AA55AA, - 0X3C3CC3C3C3C33C3C, - 0X0F0F0F0FF0F0F0F0, - 0X55AA55AA55AA55AA, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0XCC3333CC33CCCC33, - 0X5A5A5A5AA5A5A5A5, - 0X3C3CC3C3C3C33C3C, - 0XF00FF00F0FF00FF0, - 0XAA55AA55AA55AA55, - 0X3C3CC3C3C3C33C3C, - 0XF0F0F0F00F0F0F0F, - 0XAA55AA55AA55AA55, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -{ - 0X6699669999669966, - 0XCC3333CC33CCCC33, - 0XA5A5A5A55A5A5A5A, - 0XC3C33C3C3C3CC3C3, - 0XF00FF00F0FF00FF0, - 0XAA55AA55AA55AA55, - 0XC3C33C3C3C3CC3C3, - 0X0F0F0F0FF0F0F0F0, - 0XAA55AA55AA55AA55, - 0X33CCCC33CC3333CC, - 0XF0F0F0F0F0F0F0F0, - 0XA55A5AA55AA5A55A, -}, -{ - 0X9966996666996699, - 0XCC3333CC33CCCC33, - 0XA5A5A5A55A5A5A5A, - 0XC3C33C3C3C3CC3C3, - 0X0FF00FF0F00FF00F, - 0X55AA55AA55AA55AA, - 0XC3C33C3C3C3CC3C3, - 0XF0F0F0F00F0F0F0F, - 0X55AA55AA55AA55AA, - 0XCC3333CC33CCCC33, - 0X0F0F0F0F0F0F0F0F, - 0XA55A5AA55AA5A55A, -}, -//1024 -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X6996699669966996, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X9669966996699669, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0XFF0000FFFF0000FF, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0XFF00FF00FF00FF00, - 0X0FF00FF0F00FF00F, - 0X0F0FF0F0F0F00F0F, - 0XC33C3CC33CC3C33C, - 0XC33C3CC33CC3C33C, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -{ - 0X9669699696696996, - 0X9669966996699669, - 0X6996699669966996, - 0X00FFFF0000FFFF00, - 0X00FF00FF00FF00FF, - 0XF00FF00F0FF00FF0, - 0XF0F00F0F0F0FF0F0, - 0X3CC3C33CC33C3CC3, - 0X3CC3C33CC33C3CC3, - 0XA55A5AA55AA5A55A, - 0XC33C3CC33CC3C33C, - 0X3CC3C33C3CC3C33C, -}, -//2048 -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFF0000FFFF0000, - 0XFF00FF00FF00FF00, - 0XF0F0F0F0F0F0F0F0, - 0XCCCCCCCCCCCCCCCC, - 0XAAAAAAAAAAAAAAAA, -} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/controlbits.c b/crypto_kem/mceliece/mceliece348864f/vec/controlbits.c deleted file mode 100644 index 93b268b2..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE348864F_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE348864F_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE348864F_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE348864F_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/controlbits.h b/crypto_kem/mceliece/mceliece348864f/vec/controlbits.h deleted file mode 100644 index 9ea0e223..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE348864F_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE348864F_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE348864F_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece348864f/vec/crypto_hash.h deleted file mode 100644 index 0a147cbb..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE348864F_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/vec/decrypt.c b/crypto_kem/mceliece/mceliece348864f/vec/decrypt.c deleted file mode 100644 index 342276c0..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/decrypt.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[ GFBITS ]; - vec eval[64][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE348864F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864F_VEC_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE348864F_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 512 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 512; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE348864F_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE348864F_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static uint16_t weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 2; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE348864F_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE348864F_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 64 ][ GFBITS ]; - vec scaled[ 64 ][ GFBITS ]; - vec eval[ 64 ][ GFBITS ]; - - vec error[ 64 ]; - - vec s_priv[ 2 ][ GFBITS ]; - vec s_priv_cmp[ 2 ][ GFBITS ]; - vec locator[ GFBITS ]; - - vec recv[ 64 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE348864F_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE348864F_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE348864F_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE348864F_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE348864F_VEC_vec_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE348864F_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE348864F_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE348864F_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/decrypt.h b/crypto_kem/mceliece/mceliece348864f/vec/decrypt.h deleted file mode 100644 index 17f1e19b..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE348864F_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE348864F_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/encrypt.c b/crypto_kem/mceliece/mceliece348864f/vec/encrypt.c deleted file mode 100644 index 519e268a..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/encrypt.c +++ /dev/null @@ -1,135 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "gf.h" -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind_[ SYS_T * 2 ]; - uint8_t *ind_8 = (uint8_t *)ind_; - uint16_t ind[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind_8, sizeof(ind_)); - for (i = 0; i < sizeof(ind_); i += 2) { - ind_[i / 2] = (uint16_t)ind_8[i + 1] << 8 | ind_8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind_[i] &= GFMASK; - } - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind_[i] < SYS_N) { - ind[ count++ ] = ind_[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE348864F_VEC_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE348864F_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE348864F_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= PQCLEAN_MCELIECE348864F_VEC_load4(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE348864F_VEC_load4(e_ptr8 + 8 * j); - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -void PQCLEAN_MCELIECE348864F_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/encrypt.h b/crypto_kem/mceliece/mceliece348864f/vec/encrypt.h deleted file mode 100644 index 6165b324..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE348864F_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE348864F_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/fft.c b/crypto_kem/mceliece/mceliece348864f/vec/fft.c deleted file mode 100644 index 3fe9fa91..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/fft.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" -#include "vec.h" - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(uint64_t *in) { - int i, j, k; - - const uint64_t mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const uint64_t s[5][GFBITS] = { -#include "scalars.inc" - }; - - // - - for (j = 0; j <= 4; j++) { - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[i] ^= (in[i] & mask[k][0]) >> (1 << k); - in[i] ^= (in[i] & mask[k][1]) >> (1 << k); - } - } - - PQCLEAN_MCELIECE348864F_VEC_vec_mul(in, in, s[j]); // scaling - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(uint64_t out[][ GFBITS ], const uint64_t *in) { - int i, j, k, s, b; - - uint64_t tmp[ GFBITS ]; - uint64_t consts[ 63 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec powers[ 64 ][ GFBITS ] = { -#include "powers.inc" - }; - - uint64_t consts_ptr = 0; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - // boradcast - - for (j = 0; j < 64; j++) { - for (i = 0; i < GFBITS; i++) { - out[j][i] = (in[i] >> reversal[j]) & 1; - out[j][i] = -out[j][i]; - } - } - - // butterflies - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // - - // adding the part contributed by x^64 - - for (i = 0; i < 64; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } - -} - -void PQCLEAN_MCELIECE348864F_VEC_fft(vec out[][ GFBITS ], vec *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/fft.h b/crypto_kem/mceliece/mceliece348864f/vec/fft.h deleted file mode 100644 index b0eb29da..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/fft.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_FFT_H -#define PQCLEAN_MCELIECE348864F_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "params.h" -#include "vec.h" -#include - -void PQCLEAN_MCELIECE348864F_VEC_fft(vec /*out*/[][ GFBITS ], vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/fft_tr.c b/crypto_kem/mceliece/mceliece348864f/vec/fft_tr.c deleted file mode 100644 index 2d99d52c..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/fft_tr.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" -#include "vec.h" - -#include - -#define vec_add(z, x, y) \ - for (b = 0; b < GFBITS; b++) { \ - (z)[b] = (x)[b] ^ (y)[b]; \ - } - -static inline void radix_conversions_tr(uint64_t in[][ GFBITS ]) { - int i, j, k; - - const uint64_t mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const uint64_t s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 5; j >= 0; j--) { - if (j < 5) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE348864F_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - } - - for (i = 0; i < GFBITS; i++) { - for (k = j; k <= 4; k++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - } - } - - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= (in[0][i] & mask[5][0]) >> 32; - in[1][i] ^= (in[1][i] & mask[5][1]) << 32; - } - } -} - -static inline void butterflies_tr(uint64_t out[][ GFBITS ], uint64_t in[][ GFBITS ]) { - int i, j, k, s, b; - - uint64_t tmp[ GFBITS ]; - uint64_t pre[6][ GFBITS ]; - uint64_t buf[64]; - - const uint64_t consts[ 63 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 63; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {8, 1300, 3408, 1354, 2341, 1154}; - - // butterflies - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - vec_add(in[k], in[k], in[k + s]); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - vec_add(in[k + s], in[k + s], tmp); - } - } - } - - // transpose - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < 64; j++) { - buf[ reversal[j] ] = in[j][i]; - } - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 64; j++) { - in[j][i] = buf[ j ]; - } - } - - // boradcast - - PQCLEAN_MCELIECE348864F_VEC_vec_copy(pre[0], in[32]); - vec_add(in[33], in[33], in[32]); - PQCLEAN_MCELIECE348864F_VEC_vec_copy(pre[1], in[33]); - vec_add(in[35], in[35], in[33]); - vec_add(pre[0], pre[0], in[35]); - vec_add(in[34], in[34], in[35]); - PQCLEAN_MCELIECE348864F_VEC_vec_copy(pre[2], in[34]); - vec_add(in[38], in[38], in[34]); - vec_add(pre[0], pre[0], in[38]); - vec_add(in[39], in[39], in[38]); - vec_add(pre[1], pre[1], in[39]); - vec_add(in[37], in[37], in[39]); - vec_add(pre[0], pre[0], in[37]); - vec_add(in[36], in[36], in[37]); - PQCLEAN_MCELIECE348864F_VEC_vec_copy(pre[3], in[36]); - vec_add(in[44], in[44], in[36]); - vec_add(pre[0], pre[0], in[44]); - vec_add(in[45], in[45], in[44]); - vec_add(pre[1], pre[1], in[45]); - vec_add(in[47], in[47], in[45]); - vec_add(pre[0], pre[0], in[47]); - vec_add(in[46], in[46], in[47]); - vec_add(pre[2], pre[2], in[46]); - vec_add(in[42], in[42], in[46]); - vec_add(pre[0], pre[0], in[42]); - vec_add(in[43], in[43], in[42]); - vec_add(pre[1], pre[1], in[43]); - vec_add(in[41], in[41], in[43]); - vec_add(pre[0], pre[0], in[41]); - vec_add(in[40], in[40], in[41]); - PQCLEAN_MCELIECE348864F_VEC_vec_copy(pre[4], in[40]); - vec_add(in[56], in[56], in[40]); - vec_add(pre[0], pre[0], in[56]); - vec_add(in[57], in[57], in[56]); - vec_add(pre[1], pre[1], in[57]); - vec_add(in[59], in[59], in[57]); - vec_add(pre[0], pre[0], in[59]); - vec_add(in[58], in[58], in[59]); - vec_add(pre[2], pre[2], in[58]); - vec_add(in[62], in[62], in[58]); - vec_add(pre[0], pre[0], in[62]); - vec_add(in[63], in[63], in[62]); - vec_add(pre[1], pre[1], in[63]); - vec_add(in[61], in[61], in[63]); - vec_add(pre[0], pre[0], in[61]); - vec_add(in[60], in[60], in[61]); - vec_add(pre[3], pre[3], in[60]); - vec_add(in[52], in[52], in[60]); - vec_add(pre[0], pre[0], in[52]); - vec_add(in[53], in[53], in[52]); - vec_add(pre[1], pre[1], in[53]); - vec_add(in[55], in[55], in[53]); - vec_add(pre[0], pre[0], in[55]); - vec_add(in[54], in[54], in[55]); - vec_add(pre[2], pre[2], in[54]); - vec_add(in[50], in[50], in[54]); - vec_add(pre[0], pre[0], in[50]); - vec_add(in[51], in[51], in[50]); - vec_add(pre[1], pre[1], in[51]); - vec_add(in[49], in[49], in[51]); - vec_add(pre[0], pre[0], in[49]); - vec_add(in[48], in[48], in[49]); - PQCLEAN_MCELIECE348864F_VEC_vec_copy(pre[5], in[48]); - vec_add(in[16], in[16], in[48]); - vec_add(pre[0], pre[0], in[16]); - vec_add(in[17], in[17], in[16]); - vec_add(pre[1], pre[1], in[17]); - vec_add(in[19], in[19], in[17]); - vec_add(pre[0], pre[0], in[19]); - vec_add(in[18], in[18], in[19]); - vec_add(pre[2], pre[2], in[18]); - vec_add(in[22], in[22], in[18]); - vec_add(pre[0], pre[0], in[22]); - vec_add(in[23], in[23], in[22]); - vec_add(pre[1], pre[1], in[23]); - vec_add(in[21], in[21], in[23]); - vec_add(pre[0], pre[0], in[21]); - vec_add(in[20], in[20], in[21]); - vec_add(pre[3], pre[3], in[20]); - vec_add(in[28], in[28], in[20]); - vec_add(pre[0], pre[0], in[28]); - vec_add(in[29], in[29], in[28]); - vec_add(pre[1], pre[1], in[29]); - vec_add(in[31], in[31], in[29]); - vec_add(pre[0], pre[0], in[31]); - vec_add(in[30], in[30], in[31]); - vec_add(pre[2], pre[2], in[30]); - vec_add(in[26], in[26], in[30]); - vec_add(pre[0], pre[0], in[26]); - vec_add(in[27], in[27], in[26]); - vec_add(pre[1], pre[1], in[27]); - vec_add(in[25], in[25], in[27]); - vec_add(pre[0], pre[0], in[25]); - vec_add(in[24], in[24], in[25]); - vec_add(pre[4], pre[4], in[24]); - vec_add(in[8], in[8], in[24]); - vec_add(pre[0], pre[0], in[8]); - vec_add(in[9], in[9], in[8]); - vec_add(pre[1], pre[1], in[9]); - vec_add(in[11], in[11], in[9]); - vec_add(pre[0], pre[0], in[11]); - vec_add(in[10], in[10], in[11]); - vec_add(pre[2], pre[2], in[10]); - vec_add(in[14], in[14], in[10]); - vec_add(pre[0], pre[0], in[14]); - vec_add(in[15], in[15], in[14]); - vec_add(pre[1], pre[1], in[15]); - vec_add(in[13], in[13], in[15]); - vec_add(pre[0], pre[0], in[13]); - vec_add(in[12], in[12], in[13]); - vec_add(pre[3], pre[3], in[12]); - vec_add(in[4], in[4], in[12]); - vec_add(pre[0], pre[0], in[4]); - vec_add(in[5], in[5], in[4]); - vec_add(pre[1], pre[1], in[5]); - vec_add(in[7], in[7], in[5]); - vec_add(pre[0], pre[0], in[7]); - vec_add(in[6], in[6], in[7]); - vec_add(pre[2], pre[2], in[6]); - vec_add(in[2], in[2], in[6]); - vec_add(pre[0], pre[0], in[2]); - vec_add(in[3], in[3], in[2]); - vec_add(pre[1], pre[1], in[3]); - vec_add(in[1], in[1], in[3]); - - vec_add(pre[0], pre[0], in[1]); - vec_add(out[0], in[0], in[1]); - - // - - for (j = 0; j < GFBITS; j++) { - tmp[j] = (beta[0] >> j) & 1; - tmp[j] = -tmp[j]; - } - - PQCLEAN_MCELIECE348864F_VEC_vec_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = (beta[i] >> j) & 1; - tmp[j] = -tmp[j]; - } - - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp, pre[i], tmp); - vec_add(out[1], out[1], tmp); - } -} - -void PQCLEAN_MCELIECE348864F_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/fft_tr.h b/crypto_kem/mceliece/mceliece348864f/vec/fft_tr.h deleted file mode 100644 index 7135dd2c..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE348864F_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE348864F_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/gf.c b/crypto_kem/mceliece/mceliece348864f/vec/gf.c deleted file mode 100644 index 024ff7f8..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/gf.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - This file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -gf PQCLEAN_MCELIECE348864F_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 20; - - return (gf) t; -} - -gf PQCLEAN_MCELIECE348864F_VEC_gf_add(gf in0, gf in1) { - return in0 ^ in1; -} - -gf PQCLEAN_MCELIECE348864F_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint32_t tmp; - uint32_t t0; - uint32_t t1; - uint32_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & (1 << i))); - } - - t = tmp & 0x7FC000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - t = tmp & 0x3000; - tmp ^= t >> 9; - tmp ^= t >> 12; - - return tmp & ((1 << GFBITS) - 1); -} - -/* input: field element in */ -/* return: in^2 */ -static inline gf gf_sq(gf in) { - const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF}; - - uint32_t x = in; - uint32_t t; - - x = (x | (x << 8)) & B[3]; - x = (x | (x << 4)) & B[2]; - x = (x | (x << 2)) & B[1]; - x = (x | (x << 1)) & B[0]; - - t = x & 0x7FC000; - x ^= t >> 9; - x ^= t >> 12; - - t = x & 0x3000; - x ^= t >> 9; - x ^= t >> 12; - - return x & ((1 << GFBITS) - 1); -} - -gf PQCLEAN_MCELIECE348864F_VEC_gf_inv(gf in) { - gf tmp_11; - gf tmp_1111; - - gf out = in; - - out = gf_sq(out); - tmp_11 = PQCLEAN_MCELIECE348864F_VEC_gf_mul(out, in); // 11 - - out = gf_sq(tmp_11); - out = gf_sq(out); - tmp_1111 = PQCLEAN_MCELIECE348864F_VEC_gf_mul(out, tmp_11); // 1111 - - out = gf_sq(tmp_1111); - out = gf_sq(out); - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864F_VEC_gf_mul(out, tmp_1111); // 11111111 - - out = gf_sq(out); - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864F_VEC_gf_mul(out, tmp_11); // 1111111111 - - out = gf_sq(out); - out = PQCLEAN_MCELIECE348864F_VEC_gf_mul(out, in); // 11111111111 - - return gf_sq(out); // 111111111110 -} - -/* input: field element den, num */ -/* return: (num/den) */ -gf PQCLEAN_MCELIECE348864F_VEC_gf_frac(gf den, gf num) { - return PQCLEAN_MCELIECE348864F_VEC_gf_mul(PQCLEAN_MCELIECE348864F_VEC_gf_inv(den), num); -} - -/* input: in0, in1 in GF((2^m)^t)*/ -/* output: out = in0*in1 */ -void PQCLEAN_MCELIECE348864F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[ SYS_T * 2 - 1 ]; - - for (i = 0; i < SYS_T * 2 - 1; i++) { - prod[i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - for (j = 0; j < SYS_T; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE348864F_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = (SYS_T - 1) * 2; i >= SYS_T; i--) { - prod[i - SYS_T + 9] ^= PQCLEAN_MCELIECE348864F_VEC_gf_mul(prod[i], (gf) 877); - prod[i - SYS_T + 7] ^= PQCLEAN_MCELIECE348864F_VEC_gf_mul(prod[i], (gf) 2888); - prod[i - SYS_T + 5] ^= PQCLEAN_MCELIECE348864F_VEC_gf_mul(prod[i], (gf) 1781); - prod[i - SYS_T + 0] ^= PQCLEAN_MCELIECE348864F_VEC_gf_mul(prod[i], (gf) 373); - } - - for (i = 0; i < SYS_T; i++) { - out[i] = prod[i]; - } -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864F_VEC_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x007FC000007FC000; - tmp ^= (t >> 9) ^ (t >> 12); - - t = tmp & 0x0000300000003000; - tmp ^= (t >> 9) ^ (t >> 12); - - return tmp & 0x00000FFF00000FFF; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/gf.h b/crypto_kem/mceliece/mceliece348864f/vec/gf.h deleted file mode 100644 index c65ad778..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/gf.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_GF_H -#define PQCLEAN_MCELIECE348864F_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE348864F_VEC_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE348864F_VEC_gf_add(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864F_VEC_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE348864F_VEC_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE348864F_VEC_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE348864F_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE348864F_VEC_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/operations.c b/crypto_kem/mceliece/mceliece348864f/vec/operations.c deleted file mode 100644 index a54005d8..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE348864F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE348864F_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE348864F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE348864F_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE348864F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE348864F_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE348864F_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE348864F_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE348864F_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE348864F_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE348864F_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE348864F_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE348864F_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/params.h b/crypto_kem/mceliece/mceliece348864f/vec/params.h deleted file mode 100644 index 8f89f089..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_PARAMS_H -#define PQCLEAN_MCELIECE348864F_VEC_PARAMS_H - -#define GFBITS 12 -#define SYS_N 3488 -#define SYS_T 64 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/pk_gen.c b/crypto_kem/mceliece/mceliece348864f/vec/pk_gen.c deleted file mode 100644 index 314a809c..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/pk_gen.c +++ /dev/null @@ -1,317 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - int i, b, m = 0, r = 0; - - for (i = 0; i < 64; i++) { - b = ((int)(in >> i)) & 1; - m |= b; - r += (m ^ 1) & (b ^ 1); - } - - return r; -} - - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 63) / 64) ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - -int PQCLEAN_MCELIECE348864F_VEC_pk_gen(uint8_t *pk, uint32_t *perm, const uint8_t *sk) { -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - uint64_t irr_int[ GFBITS ]; - - vec consts[64][ GFBITS ]; - vec eval[ 64 ][ GFBITS ]; - vec prod[ 64 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE348864F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE348864F_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE348864F_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE348864F_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE348864F_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE348864F_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS_H - 1; j++) { - PQCLEAN_MCELIECE348864F_VEC_store8(pk, mat[i][j]); - pk += 8; - } - - PQCLEAN_MCELIECE348864F_VEC_store_i(pk, mat[i][j], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/pk_gen.h b/crypto_kem/mceliece/mceliece348864f/vec/pk_gen.h deleted file mode 100644 index 5666efea..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE348864F_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include - -int PQCLEAN_MCELIECE348864F_VEC_pk_gen(uint8_t * /*pk*/, uint32_t * /*perm*/, const uint8_t * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/powers.inc b/crypto_kem/mceliece/mceliece348864f/vec/powers.inc deleted file mode 100644 index a37fb2bd..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/powers.inc +++ /dev/null @@ -1,896 +0,0 @@ -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0x3333CCCC3333CCCC, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0xF0F0F0F00F0F0F0F, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0xF0F0F0F0F0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0x0000000000000000, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0xFFFFFFFFFFFFFFFF, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0xAA55AA55AA55AA55, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -}, -{ - 0x0F0F0F0FF0F0F0F0, - 0x0000FFFF0000FFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0F0F0F0F0F0F0F0F, - 0xFFFFFFFFFFFFFFFF, - 0x55AA55AA55AA55AA, - 0x0F0F0F0FF0F0F0F0, - 0x0000000000000000, - 0x00FF00FF00FF00FF, - 0xF0F0F0F0F0F0F0F0, - 0xCCCC3333CCCC3333, - 0x5555555555555555 -} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/scalars.inc b/crypto_kem/mceliece/mceliece348864f/vec/scalars.inc deleted file mode 100644 index aa8f64b9..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/scalars.inc +++ /dev/null @@ -1,70 +0,0 @@ -{ - 0XF3CFC030FC30F003, - 0X3FCF0F003C00C00C, - 0X30033CC300C0C03C, - 0XCCFF0F3C0F30F0C0, - 0X0300C03FF303C3F0, - 0X3FFF3C0FF0CCCCC0, - 0XF3FFF0C00F3C3CC0, - 0X3003333FFFC3C000, - 0X0FF30FFFC3FFF300, - 0XFFC0F300F0F0CC00, - 0XC0CFF3FCCC3CFC00, - 0XFC3C03F0F330C000, -}, -{ - 0X000F00000000F00F, - 0X00000F00F00000F0, - 0X0F00000F00000F00, - 0XF00F00F00F000000, - 0X00F00000000000F0, - 0X0000000F00000000, - 0XF00000000F00F000, - 0X00F00F00000F0000, - 0X0000F00000F00F00, - 0X000F00F00F00F000, - 0X00F00F0000000000, - 0X0000000000F00000, -}, -{ - 0X0000FF00FF0000FF, - 0X0000FF000000FF00, - 0XFF0000FF00FF0000, - 0XFFFF0000FF000000, - 0X00FF00FF00FF0000, - 0X0000FFFFFF000000, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF0000, - 0XFFFF00FFFF00FF00, - 0X0000FF0000000000, - 0XFFFFFF00FF000000, - 0X00FF000000000000, -}, -{ - 0X000000000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece348864f/vec/scalars_2x.inc deleted file mode 100644 index e7c7fee5..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/scalars_2x.inc +++ /dev/null @@ -1,140 +0,0 @@ -{{ - 0XF3CFC030FC30F003, - 0X3FCF0F003C00C00C, - 0X30033CC300C0C03C, - 0XCCFF0F3C0F30F0C0, - 0X0300C03FF303C3F0, - 0X3FFF3C0FF0CCCCC0, - 0XF3FFF0C00F3C3CC0, - 0X3003333FFFC3C000, - 0X0FF30FFFC3FFF300, - 0XFFC0F300F0F0CC00, - 0XC0CFF3FCCC3CFC00, - 0XFC3C03F0F330C000, -}, -{ - 0X000C03C0C3C0330C, - 0XF330CFFCC00F33C0, - 0XCCF330F00F3C0333, - 0XFF03FFF3FF0CF0C0, - 0X3CC3FCF00FCC303C, - 0X0F000C0FC30303F3, - 0XCF0FC3FF333CCF3C, - 0X003F3FC3C0FF333F, - 0X3CC3F0F3CF0FF00F, - 0XF3F33CC03FC30CC0, - 0X3CC330CFC333F33F, - 0X3CC0303FF3C3FFFC, -}}, -{{ - 0X000F00000000F00F, - 0X00000F00F00000F0, - 0X0F00000F00000F00, - 0XF00F00F00F000000, - 0X00F00000000000F0, - 0X0000000F00000000, - 0XF00000000F00F000, - 0X00F00F00000F0000, - 0X0000F00000F00F00, - 0X000F00F00F00F000, - 0X00F00F0000000000, - 0X0000000000F00000, -}, -{ - 0X0F00F00F00000000, - 0XF00000000000F000, - 0X00000F00000000F0, - 0X0F00F00000F00000, - 0X000F00000F00F00F, - 0X00F00F00F00F0000, - 0X0F00F00000000000, - 0X000000000F000000, - 0X00F00000000F00F0, - 0X0000F00F00000F00, - 0XF00000F00000F00F, - 0X00000F00F00F00F0, -}}, -{{ - 0X0000FF00FF0000FF, - 0X0000FF000000FF00, - 0XFF0000FF00FF0000, - 0XFFFF0000FF000000, - 0X00FF00FF00FF0000, - 0X0000FFFFFF000000, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF0000, - 0XFFFF00FFFF00FF00, - 0X0000FF0000000000, - 0XFFFFFF00FF000000, - 0X00FF000000000000, -}, -{ - 0XFF00FFFFFF000000, - 0XFF0000FFFF000000, - 0XFFFF00FFFF000000, - 0XFF00FFFFFFFFFF00, - 0X00000000FF00FF00, - 0XFFFFFFFF00FF0000, - 0X00FFFFFF00FF0000, - 0XFFFF00FFFF00FFFF, - 0XFFFF0000FFFFFFFF, - 0XFF00000000FF0000, - 0X000000FF00FF00FF, - 0X00FF00FF00FFFF00, -}}, -{{ - 0X000000000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X00000000FFFF0000, - 0X0000FFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X0000000000000000, - 0XFFFF000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFF00000000FFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF00000000FFFF, - 0X00000000FFFF0000, - 0X0000000000000000, - 0XFFFF00000000FFFF, - 0X00000000FFFF0000, -}}, -{{ - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, -}, -{ - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000, -}} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/sk_gen.c b/crypto_kem/mceliece/mceliece348864f/vec/sk_gen.c deleted file mode 100644 index ff6a6555..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE348864F_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE348864F_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE348864F_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE348864F_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE348864F_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE348864F_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE348864F_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE348864F_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/sk_gen.h b/crypto_kem/mceliece/mceliece348864f/vec/sk_gen.h deleted file mode 100644 index ae90c33e..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE348864F_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE348864F_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE348864F_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/transpose.c b/crypto_kem/mceliece/mceliece348864f/vec/transpose.c deleted file mode 100644 index a28df8f1..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/transpose.h b/crypto_kem/mceliece/mceliece348864f/vec/transpose.h deleted file mode 100644 index ca07570d..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE348864F_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE348864F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece348864f/vec/util.c b/crypto_kem/mceliece/mceliece348864f/vec/util.c deleted file mode 100644 index 7ba6e65e..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/util.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "util.h" - - -void PQCLEAN_MCELIECE348864F_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE348864F_VEC_store2(unsigned char *dest, gf a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE348864F_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE348864F_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE348864F_VEC_irr_load(uint64_t *out, const unsigned char *in) { - int i, j; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE348864F_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - out[i] = 0; - } - - for (i = SYS_T; i >= 0; i--) { - for (j = 0; j < GFBITS; j++) { - out[j] <<= 1; - out[j] |= (irr[i] >> j) & 1; - } - } -} - -void PQCLEAN_MCELIECE348864F_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE348864F_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -gf PQCLEAN_MCELIECE348864F_VEC_bitrev(gf a) { - a = ((a & 0x00FF) << 8) | ((a & 0xFF00) >> 8); - a = ((a & 0x0F0F) << 4) | ((a & 0xF0F0) >> 4); - a = ((a & 0x3333) << 2) | ((a & 0xCCCC) >> 2); - a = ((a & 0x5555) << 1) | ((a & 0xAAAA) >> 1); - - return a >> 4; -} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/util.h b/crypto_kem/mceliece/mceliece348864f/vec/util.h deleted file mode 100644 index fec3935e..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/util.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_UTIL_H -#define PQCLEAN_MCELIECE348864F_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "gf.h" - -#include - -void PQCLEAN_MCELIECE348864F_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE348864F_VEC_store2(unsigned char *dest, gf a); - -uint16_t PQCLEAN_MCELIECE348864F_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE348864F_VEC_load4(const unsigned char *src); - - -void PQCLEAN_MCELIECE348864F_VEC_irr_load(uint64_t *out, const unsigned char *in); - -void PQCLEAN_MCELIECE348864F_VEC_store8(unsigned char *out, uint64_t in); - - -uint64_t PQCLEAN_MCELIECE348864F_VEC_load8(const unsigned char *in); - -gf PQCLEAN_MCELIECE348864F_VEC_bitrev(gf a); - -#endif diff --git a/crypto_kem/mceliece/mceliece348864f/vec/vec.c b/crypto_kem/mceliece/mceliece348864f/vec/vec.c deleted file mode 100644 index c3981dc9..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/vec.c +++ /dev/null @@ -1,131 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE348864F_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE348864F_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE348864F_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE348864F_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return ((int)a & 1) ^ 1; -} - -void PQCLEAN_MCELIECE348864F_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE348864F_VEC_vec_sq(vec *out, const vec *in) { - int i; - uint64_t result[GFBITS]; - - // - - result[0] = in[0] ^ in[6]; - result[1] = in[11]; - result[2] = in[1] ^ in[7]; - result[3] = in[6]; - result[4] = in[2] ^ in[11] ^ in[8]; - result[5] = in[7]; - result[6] = in[3] ^ in[9]; - result[7] = in[8]; - result[8] = in[4] ^ in[10]; - result[9] = in[9]; - result[10] = in[5] ^ in[11]; - result[11] = in[10]; - - // - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE348864F_VEC_vec_inv(vec *out, const vec *in) { - uint64_t tmp_11[GFBITS]; - uint64_t tmp_1111[GFBITS]; - - PQCLEAN_MCELIECE348864F_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp_11, out, in); // 11 - - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(tmp_1111, out, tmp_11); // 1111 - - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(out, out, tmp_1111); // 11111111 - - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(out, out, tmp_11); // 1111111111 - - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE348864F_VEC_vec_mul(out, out, in); // 11111111111 - - PQCLEAN_MCELIECE348864F_VEC_vec_sq(out, out); // 111111111110 -} diff --git a/crypto_kem/mceliece/mceliece348864f/vec/vec.h b/crypto_kem/mceliece/mceliece348864f/vec/vec.h deleted file mode 100644 index e76dddf1..00000000 --- a/crypto_kem/mceliece/mceliece348864f/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE348864F_VEC_VEC_H -#define PQCLEAN_MCELIECE348864F_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE348864F_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE348864F_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE348864F_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE348864F_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE348864F_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE348864F_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE348864F_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE348864F_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/avx/LICENSE b/crypto_kem/mceliece/mceliece460896/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece460896/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece460896/clean/LICENSE b/crypto_kem/mceliece/mceliece460896/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece460896/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece460896/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece460896/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 3a8fba13..00000000 --- a/crypto_kem/mceliece/mceliece460896/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece460896_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece460896/sse/LICENSE b/crypto_kem/mceliece/mceliece460896/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece460896/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece460896/sse/aes256ctr.c deleted file mode 100644 index 691f5632..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE460896_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece460896/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece460896/sse/aes256ctr.h deleted file mode 100644 index 5311dd5a..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE460896_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE460896_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece460896/sse/api.h b/crypto_kem/mceliece/mceliece460896/sse/api.h deleted file mode 100644 index 1a6dab5c..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/api.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_API_H -#define PQCLEAN_MCELIECE460896_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE460896_SSE_CRYPTO_ALGNAME "Classic McEliece 460896" -#define PQCLEAN_MCELIECE460896_SSE_CRYPTO_PUBLICKEYBYTES 524160 -#define PQCLEAN_MCELIECE460896_SSE_CRYPTO_SECRETKEYBYTES 13568 -#define PQCLEAN_MCELIECE460896_SSE_CRYPTO_CIPHERTEXTBYTES 188 -#define PQCLEAN_MCELIECE460896_SSE_CRYPTO_BYTES 32 - -int PQCLEAN_MCELIECE460896_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE460896_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE460896_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/benes.c b/crypto_kem/mceliece/mceliece460896/sse/benes.c deleted file mode 100644 index 9530e70b..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE460896_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE460896_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE460896_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE460896_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE460896_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE460896_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(PQCLEAN_MCELIECE460896_SSE_load8(ptr), PQCLEAN_MCELIECE460896_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE460896_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(PQCLEAN_MCELIECE460896_SSE_load8(ptr), PQCLEAN_MCELIECE460896_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE460896_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/benes.h b/crypto_kem/mceliece/mceliece460896/sse/benes.h deleted file mode 100644 index 6d4fc8ce..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/benes.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_BENES_H -#define PQCLEAN_MCELIECE460896_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "gf.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE460896_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE460896_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/bm.c b/crypto_kem/mceliece/mceliece460896/sse/bm.c deleted file mode 100644 index de3e393e..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/bm.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE460896_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE460896_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE460896_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE460896_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE460896_SSE_vec128_or(PQCLEAN_MCELIECE460896_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(PQCLEAN_MCELIECE460896_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE460896_SSE_vec128_or(PQCLEAN_MCELIECE460896_SSE_vec128_srl_2x(PQCLEAN_MCELIECE460896_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE460896_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE460896_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE460896_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE460896_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE460896_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - uint64_t v[2]; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0, one << 63); - B[0] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0, one << 62); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE460896_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE460896_SSE_vec128_setzero(); - } - - for (N = 0; N < SYS_T * 2; N++) { - PQCLEAN_MCELIECE460896_SSE_update_asm(interval, coefs[N]); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(prod, C, (vec128 *) interval); - d = PQCLEAN_MCELIECE460896_SSE_vec_reduce_asm(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE460896_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE460896_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE460896_SSE_update_asm(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - v[0] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(C[i], 0); - v[1] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(C[i], 1); - - out[i] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x((v[0] >> 31) | (v[1] << 33), v[1] >> 31); - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/bm.h b/crypto_kem/mceliece/mceliece460896/sse/bm.h deleted file mode 100644 index 015824f5..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_BM_H -#define PQCLEAN_MCELIECE460896_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE460896_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/consts.S b/crypto_kem/mceliece/mceliece460896/sse/consts.S deleted file mode 100644 index 3156dbee..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE460896_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE460896_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE460896_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE460896_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE460896_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE460896_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE460896_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE460896_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE460896_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE460896_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE460896_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE460896_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE460896_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE460896_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE460896_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE460896_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE460896_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE460896_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE460896_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE460896_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE460896_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE460896_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE460896_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE460896_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece460896/sse/consts.inc b/crypto_kem/mceliece/mceliece460896/sse/consts.inc deleted file mode 100644 index 6dc9b4d1..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece460896/sse/controlbits.c b/crypto_kem/mceliece/mceliece460896/sse/controlbits.c deleted file mode 100644 index ac7adfe7..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE460896_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE460896_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE460896_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE460896_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/controlbits.h b/crypto_kem/mceliece/mceliece460896/sse/controlbits.h deleted file mode 100644 index 038a42b6..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE460896_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE460896_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE460896_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece460896/sse/crypto_hash.h deleted file mode 100644 index df1c6228..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE460896_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece460896/sse/decrypt.c b/crypto_kem/mceliece/mceliece460896/sse/decrypt.c deleted file mode 100644 index af96cb64..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/decrypt.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE460896_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE460896_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE460896_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE460896_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 64; i++) { - v[0] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE460896_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE460896_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE460896_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 64; i++) { - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE460896_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE460896_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u64( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE460896_SSE_vec128_or(PQCLEAN_MCELIECE460896_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE460896_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE460896_SSE_vec128_or(diff, PQCLEAN_MCELIECE460896_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE460896_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE460896_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE460896_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE460896_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE460896_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE460896_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE460896_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE460896_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE460896_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE460896_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE460896_SSE_benes(error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/decrypt.h b/crypto_kem/mceliece/mceliece460896/sse/decrypt.h deleted file mode 100644 index 5e7e4566..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE460896_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE460896_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/encrypt.c b/crypto_kem/mceliece/mceliece460896/sse/encrypt.c deleted file mode 100644 index 14091872..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/encrypt.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE460896_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((unsigned char *) ind, sizeof(ind)); - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - PQCLEAN_MCELIECE460896_SSE_store8(e, e_int[i]); - e += 8; - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE460896_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - PQCLEAN_MCELIECE460896_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/encrypt.h b/crypto_kem/mceliece/mceliece460896/sse/encrypt.h deleted file mode 100644 index 099f6aa2..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE460896_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE460896_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/fft.c b/crypto_kem/mceliece/mceliece460896/sse/fft.c deleted file mode 100644 index 8b2aff65..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/fft.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE460896_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE460896_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE460896_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE460896_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/fft.h b/crypto_kem/mceliece/mceliece460896/sse/fft.h deleted file mode 100644 index 8d5f6004..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_FFT_H -#define PQCLEAN_MCELIECE460896_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE460896_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/fft_tr.c b/crypto_kem/mceliece/mceliece460896/sse/fft_tr.c deleted file mode 100644 index 73bd36b4..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/fft_tr.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE460896_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE460896_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE460896_SSE_vec128_xor(x1, PQCLEAN_MCELIECE460896_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE460896_SSE_vec128_xor(x1, PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE460896_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -/* justifying the length of the output */ -static void postprocess(vec128 out[][GFBITS]) { - int i; - uint64_t v[2]; - - for (i = 0; i < 13; i++) { - v[0] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(out[1][i], 0); - v[1] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(out[1][i], 1); - - v[1] = 0; - - out[1][i] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE460896_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/fft_tr.h b/crypto_kem/mceliece/mceliece460896/sse/fft_tr.h deleted file mode 100644 index abb77479..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE460896_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE460896_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/gf.c b/crypto_kem/mceliece/mceliece460896/sse/gf.c deleted file mode 100644 index 34f9b754..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/gf.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE460896_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE460896_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE460896_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE460896_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE460896_SSE_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE460896_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[191]; - - for (i = 0; i < 191; i++) { - prod[i] = 0; - } - - for (i = 0; i < 96; i++) { - for (j = 0; j < 96; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE460896_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 190; i >= 96; i--) { - prod[i - 85] ^= PQCLEAN_MCELIECE460896_SSE_gf_mul(prod[i], (gf) 714); - prod[i - 91] ^= PQCLEAN_MCELIECE460896_SSE_gf_mul(prod[i], (gf) 5296); - prod[i - 92] ^= PQCLEAN_MCELIECE460896_SSE_gf_mul(prod[i], (gf) 728); - prod[i - 96] ^= PQCLEAN_MCELIECE460896_SSE_gf_mul(prod[i], (gf) 5881); - } - - for (i = 0; i < 96; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/gf.h b/crypto_kem/mceliece/mceliece460896/sse/gf.h deleted file mode 100644 index bc1c60d3..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_GF_H -#define PQCLEAN_MCELIECE460896_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE460896_SSE_gf_iszero(gf a); -gf PQCLEAN_MCELIECE460896_SSE_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE460896_SSE_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE460896_SSE_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE460896_SSE_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE460896_SSE_gf_inv(gf in); - -void PQCLEAN_MCELIECE460896_SSE_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/operations.c b/crypto_kem/mceliece/mceliece460896/sse/operations.c deleted file mode 100644 index c7e0f688..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE460896_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE460896_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE460896_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE460896_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE460896_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE460896_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE460896_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE460896_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE460896_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE460896_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE460896_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE460896_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE460896_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/params.h b/crypto_kem/mceliece/mceliece460896/sse/params.h deleted file mode 100644 index 1262257d..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_PARAMS_H -#define PQCLEAN_MCELIECE460896_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 4608 -#define SYS_T 96 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/pk_gen.c b/crypto_kem/mceliece/mceliece460896/sse/pk_gen.c deleted file mode 100644 index 4c31efb1..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/pk_gen.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE460896_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS1_I ((GFBITS * SYS_T + 63) / 64) -#define NBLOCKS2_I ((GFBITS * SYS_T + 127) / 128) -int PQCLEAN_MCELIECE460896_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const uint8_t *sk) { - const int block_idx = NBLOCKS1_I - 1; - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS1_I ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[64][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 128 ]; - - // compute the inverses - - PQCLEAN_MCELIECE460896_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE460896_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE460896_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_I; j++) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS1_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - uint64_t column[ PK_NROWS ]; - - for (i = 0; i < PK_NROWS; i++) { - column[i] = mat[ i ][ block_idx ]; - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS2_I; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS2_I; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE460896_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - - for (i = 0; i < PK_NROWS; i++) { - mat[ i ][ block_idx ] = column[i]; - } - - for (row = 0; row < PK_NROWS; row++) { - - for (k = 0; k < NBLOCKS1_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS1_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS1_H - 1; k++) { - one_row[k] = (one_row[k] >> tail) | (one_row[k + 1] << (64 - tail)); - PQCLEAN_MCELIECE460896_SSE_store8(pk, one_row[k]); - pk += 8; - } - - one_row[k] >>= tail; - PQCLEAN_MCELIECE460896_SSE_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/pk_gen.h b/crypto_kem/mceliece/mceliece460896/sse/pk_gen.h deleted file mode 100644 index 80d813a0..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE460896_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE460896_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece460896/sse/scalars_2x.inc deleted file mode 100644 index ab5fb1ce..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece460896/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece460896/sse/scalars_4x.inc deleted file mode 100644 index ba28f053..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/sk_gen.c b/crypto_kem/mceliece/mceliece460896/sse/sk_gen.c deleted file mode 100644 index 539b849e..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE460896_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE460896_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE460896_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE460896_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE460896_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE460896_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE460896_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE460896_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/sk_gen.h b/crypto_kem/mceliece/mceliece460896/sse/sk_gen.h deleted file mode 100644 index 039d1b54..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE460896_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE460896_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE460896_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece460896/sse/syndrome_asm.S deleted file mode 100644 index eabe2a0a..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/syndrome_asm.S +++ /dev/null @@ -1,960 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE460896_SSE_syndrome_asm -.global PQCLEAN_MCELIECE460896_SSE_syndrome_asm -_PQCLEAN_MCELIECE460896_SSE_syndrome_asm: -PQCLEAN_MCELIECE460896_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 523740 -# asm 1: add $523740,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1248 -# asm 1: mov $1248,>row=int64#5 -# asm 2: mov $1248,>row=%r8 -mov $1248,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 156 ] -# asm 1: movdqu 156(ee=reg128#2 -# asm 2: movdqu 156(ee=%xmm1 -movdqu 156(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 172 ] -# asm 1: movdqu 172(ee=reg128#3 -# asm 2: movdqu 172(ee=%xmm2 -movdqu 172(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 188 ] -# asm 1: movdqu 188(ee=reg128#3 -# asm 2: movdqu 188(ee=%xmm2 -movdqu 188(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 204 ] -# asm 1: movdqu 204(ee=reg128#3 -# asm 2: movdqu 204(ee=%xmm2 -movdqu 204(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 220 ] -# asm 1: movdqu 220(ee=reg128#3 -# asm 2: movdqu 220(ee=%xmm2 -movdqu 220(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 236 ] -# asm 1: movdqu 236(ee=reg128#3 -# asm 2: movdqu 236(ee=%xmm2 -movdqu 236(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 252 ] -# asm 1: movdqu 252(ee=reg128#3 -# asm 2: movdqu 252(ee=%xmm2 -movdqu 252(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 268 ] -# asm 1: movdqu 268(ee=reg128#3 -# asm 2: movdqu 268(ee=%xmm2 -movdqu 268(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 284 ] -# asm 1: movdqu 284(ee=reg128#3 -# asm 2: movdqu 284(ee=%xmm2 -movdqu 284(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 300 ] -# asm 1: movdqu 300(ee=reg128#3 -# asm 2: movdqu 300(ee=%xmm2 -movdqu 300(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 316 ] -# asm 1: movdqu 316(ee=reg128#3 -# asm 2: movdqu 316(ee=%xmm2 -movdqu 316(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 332 ] -# asm 1: movdqu 332(ee=reg128#3 -# asm 2: movdqu 332(ee=%xmm2 -movdqu 332(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 348 ] -# asm 1: movdqu 348(ee=reg128#3 -# asm 2: movdqu 348(ee=%xmm2 -movdqu 348(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 364 ] -# asm 1: movdqu 364(ee=reg128#3 -# asm 2: movdqu 364(ee=%xmm2 -movdqu 364(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 380 ] -# asm 1: movdqu 380(ee=reg128#3 -# asm 2: movdqu 380(ee=%xmm2 -movdqu 380(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 396 ] -# asm 1: movdqu 396(ee=reg128#3 -# asm 2: movdqu 396(ee=%xmm2 -movdqu 396(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 412 ] -# asm 1: movdqu 412(ee=reg128#3 -# asm 2: movdqu 412(ee=%xmm2 -movdqu 412(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 428 ] -# asm 1: movdqu 428(ee=reg128#3 -# asm 2: movdqu 428(ee=%xmm2 -movdqu 428(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 444 ] -# asm 1: movdqu 444(ee=reg128#3 -# asm 2: movdqu 444(ee=%xmm2 -movdqu 444(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 460 ] -# asm 1: movdqu 460(ee=reg128#3 -# asm 2: movdqu 460(ee=%xmm2 -movdqu 460(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 476 ] -# asm 1: movdqu 476(ee=reg128#3 -# asm 2: movdqu 476(ee=%xmm2 -movdqu 476(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 336(pp=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 492 ] -# asm 1: movdqu 492(ee=reg128#3 -# asm 2: movdqu 492(ee=%xmm2 -movdqu 492(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 352(pp=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 508 ] -# asm 1: movdqu 508(ee=reg128#3 -# asm 2: movdqu 508(ee=%xmm2 -movdqu 508(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 368(pp=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 524 ] -# asm 1: movdqu 524(ee=reg128#3 -# asm 2: movdqu 524(ee=%xmm2 -movdqu 524(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 384(pp=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 540 ] -# asm 1: movdqu 540(ee=reg128#3 -# asm 2: movdqu 540(ee=%xmm2 -movdqu 540(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 400(pp=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 556 ] -# asm 1: movdqu 556(ee=reg128#3 -# asm 2: movdqu 556(ee=%xmm2 -movdqu 556(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = *(uint32 *)(input_1 + 416) -# asm 1: movl 416(s=int64#6d -# asm 2: movl 416(s=%r9d -movl 416(%rsi),%r9d - -# qhasm: e = *(uint32 *)(input_2 + 572) -# asm 1: movl 572(e=int64#7d -# asm 2: movl 572(e=%eax -movl 572(%rdx),%eax - -# qhasm: s &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 16(ss=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#2 -# asm 2: movdqu 16(ee=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 32(ss=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#2 -# asm 2: movdqu 32(ee=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 48(ss=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#2 -# asm 2: movdqu 48(ee=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 64(ss=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#2 -# asm 2: movdqu 64(ee=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 80(ss=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#2 -# asm 2: movdqu 80(ee=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 96(ss=%xmm0 -movdqu 96(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#2 -# asm 2: movdqu 96(ee=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 112(ss=%xmm0 -movdqu 112(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#2 -# asm 2: movdqu 112(ee=%xmm1 -movdqu 112(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor s=int64#2 -# asm 2: movq 128(s=%rsi -movq 128(%rdi),%rsi - -# qhasm: e = mem64[ input_2 + 128 ] -# asm 1: movq 128(e=int64#4 -# asm 2: movq 128(e=%rcx -movq 128(%rdx),%rcx - -# qhasm: s ^= e -# asm 1: xor s=int64#2 -# asm 2: movq 136(s=%rsi -movq 136(%rdi),%rsi - -# qhasm: e = mem64[ input_2 + 136 ] -# asm 1: movq 136(e=int64#4 -# asm 2: movq 136(e=%rcx -movq 136(%rdx),%rcx - -# qhasm: s ^= e -# asm 1: xor s=int64#2 -# asm 2: movq 144(s=%rsi -movq 144(%rdi),%rsi - -# qhasm: e = mem64[ input_2 + 144 ] -# asm 1: movq 144(e=int64#4 -# asm 2: movq 144(e=%rcx -movq 144(%rdx),%rcx - -# qhasm: s ^= e -# asm 1: xor s=int64#2d -# asm 2: movl 152(s=%esi -movl 152(%rdi),%esi - -# qhasm: e = *(uint32 *)( input_2 + 152 ) -# asm 1: movl 152(e=int64#3d -# asm 2: movl 152(e=%edx -movl 152(%rdx),%edx - -# qhasm: s ^= e -# asm 1: xor mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE460896_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE460896_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE460896_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE460896_SSE_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE460896_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE460896_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE460896_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE460896_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE460896_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE460896_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE460896_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE460896_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE460896_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE460896_SSE_vec128_set2x( PQCLEAN_MCELIECE460896_SSE_load8(in), PQCLEAN_MCELIECE460896_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE460896_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE460896_SSE_store8(out + 0, PQCLEAN_MCELIECE460896_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE460896_SSE_store8(out + 8, PQCLEAN_MCELIECE460896_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece460896/sse/util.h b/crypto_kem/mceliece/mceliece460896/sse/util.h deleted file mode 100644 index 312e1ed1..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_UTIL_H -#define PQCLEAN_MCELIECE460896_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE460896_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE460896_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE460896_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE460896_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE460896_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE460896_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE460896_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE460896_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE460896_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece460896/sse/vec128.c b/crypto_kem/mceliece/mceliece460896/sse/vec128.c deleted file mode 100644 index ff68a501..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE460896_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE460896_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE460896_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE460896_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE460896_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE460896_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE460896_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE460896_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE460896_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE460896_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE460896_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece460896/sse/vec128.h b/crypto_kem/mceliece/mceliece460896/sse/vec128.h deleted file mode 100644 index 7bcb1977..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_SSE_VEC128_H -#define PQCLEAN_MCELIECE460896_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE460896_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE460896_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE460896_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE460896_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE460896_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE460896_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE460896_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE460896_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE460896_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece460896/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece460896/sse/vec128_mul_asm.S deleted file mode 100644 index 0d48cbaf..00000000 --- a/crypto_kem/mceliece/mceliece460896/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE460896_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE460896_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE460896_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE460896_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE460896_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece460896/vec/api.h b/crypto_kem/mceliece/mceliece460896/vec/api.h deleted file mode 100644 index 84529cd9..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/api.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_API_H -#define PQCLEAN_MCELIECE460896_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE460896_VEC_CRYPTO_ALGNAME "Classic McEliece 460896" -#define PQCLEAN_MCELIECE460896_VEC_CRYPTO_PUBLICKEYBYTES 524160 -#define PQCLEAN_MCELIECE460896_VEC_CRYPTO_SECRETKEYBYTES 13568 -#define PQCLEAN_MCELIECE460896_VEC_CRYPTO_CIPHERTEXTBYTES 188 -#define PQCLEAN_MCELIECE460896_VEC_CRYPTO_BYTES 32 - -int PQCLEAN_MCELIECE460896_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE460896_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE460896_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/benes.c b/crypto_kem/mceliece/mceliece460896/vec/benes.c deleted file mode 100644 index f240d97a..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE460896_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/benes.h b/crypto_kem/mceliece/mceliece460896/vec/benes.h deleted file mode 100644 index 9d4727b7..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_BENES_H -#define PQCLEAN_MCELIECE460896_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE460896_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/bm.c b/crypto_kem/mceliece/mceliece460896/vec/bm.c deleted file mode 100644 index 48396da6..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/bm.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE460896_VEC_bm(vec out[][GFBITS], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = one << 63; - B[0][0] = 0; - B[1][0] = one << 62; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - update(interval, coefs[N]); - - PQCLEAN_MCELIECE460896_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE460896_VEC_vec_mul(prod[1], C[1], interval[1]); - - d = vec_reduce(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE460896_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE460896_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE460896_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE460896_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE460896_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE460896_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - out[0][i] = (C[0][i] >> 31) | (C[1][i] << 33); - out[1][i] = C[1][i] >> 31; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/bm.h b/crypto_kem/mceliece/mceliece460896/vec/bm.h deleted file mode 100644 index 1c432044..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_BM_H -#define PQCLEAN_MCELIECE460896_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE460896_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/consts.inc b/crypto_kem/mceliece/mceliece460896/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece460896/vec/controlbits.c b/crypto_kem/mceliece/mceliece460896/vec/controlbits.c deleted file mode 100644 index 56ab9db7..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE460896_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE460896_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE460896_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE460896_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/controlbits.h b/crypto_kem/mceliece/mceliece460896/vec/controlbits.h deleted file mode 100644 index 52ad0be7..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE460896_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE460896_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE460896_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece460896/vec/crypto_hash.h deleted file mode 100644 index c2da7b50..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE460896_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece460896/vec/decrypt.c b/crypto_kem/mceliece/mceliece460896/vec/decrypt.c deleted file mode 100644 index c78c891e..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/decrypt.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE460896_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE460896_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE460896_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE460896_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 128; i++) { - recv[i] = PQCLEAN_MCELIECE460896_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE460896_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static int weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE460896_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE460896_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE460896_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE460896_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE460896_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE460896_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE460896_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE460896_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE460896_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE460896_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = (uint16_t)weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/decrypt.h b/crypto_kem/mceliece/mceliece460896/vec/decrypt.h deleted file mode 100644 index 0b3cdda3..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE460896_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE460896_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/encrypt.c b/crypto_kem/mceliece/mceliece460896/vec/encrypt.c deleted file mode 100644 index ad71e496..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/encrypt.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint8_t *ind8 = (uint8_t *)ind; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - PQCLEAN_MCELIECE460896_VEC_store8(e, e_int[i]); - e += 8; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE460896_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE460896_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= PQCLEAN_MCELIECE460896_VEC_load4(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE460896_VEC_load4(e_ptr8 + 8 * j); - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE460896_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/encrypt.h b/crypto_kem/mceliece/mceliece460896/vec/encrypt.h deleted file mode 100644 index a864abf6..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE460896_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE460896_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/fft.c b/crypto_kem/mceliece/mceliece460896/vec/fft.c deleted file mode 100644 index d0a9b954..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/fft.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE460896_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE460896_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // adding the part contributed by x^128 - -// for (i = 0; i < 128; i++) -// for (b = 0; b < GFBITS; b++) -// out[i][b] ^= powers[i][b]; -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE460896_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/fft.h b/crypto_kem/mceliece/mceliece460896/vec/fft.h deleted file mode 100644 index d58828f5..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_FFT_H -#define PQCLEAN_MCELIECE460896_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE460896_VEC_fft(vec out[][ GFBITS ], vec in[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/fft_tr.c b/crypto_kem/mceliece/mceliece460896/vec/fft_tr.c deleted file mode 100644 index 35b42a7a..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/fft_tr.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE460896_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE460896_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE460896_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE460896_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE460896_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE460896_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE460896_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE460896_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE460896_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -/* justifying the length of the output */ -static void postprocess(vec out[4][GFBITS]) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[3][i] = 0; - } -} - -void PQCLEAN_MCELIECE460896_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/fft_tr.h b/crypto_kem/mceliece/mceliece460896/vec/fft_tr.h deleted file mode 100644 index 83b0da30..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE460896_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE460896_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/gf.c b/crypto_kem/mceliece/mceliece460896/vec/gf.c deleted file mode 100644 index 55364ac6..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/gf.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE460896_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE460896_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE460896_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE460896_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE460896_VEC_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE460896_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[191]; - - for (i = 0; i < 191; i++) { - prod[i] = 0; - } - - for (i = 0; i < 96; i++) { - for (j = 0; j < 96; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE460896_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 190; i >= 96; i--) { - prod[i - 85] ^= PQCLEAN_MCELIECE460896_VEC_gf_mul(prod[i], (gf) 714); - prod[i - 91] ^= PQCLEAN_MCELIECE460896_VEC_gf_mul(prod[i], (gf) 5296); - prod[i - 92] ^= PQCLEAN_MCELIECE460896_VEC_gf_mul(prod[i], (gf) 728); - prod[i - 96] ^= PQCLEAN_MCELIECE460896_VEC_gf_mul(prod[i], (gf) 5881); - } - - for (i = 0; i < 96; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/gf.h b/crypto_kem/mceliece/mceliece460896/vec/gf.h deleted file mode 100644 index dce2307b..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_GF_H -#define PQCLEAN_MCELIECE460896_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE460896_VEC_gf_iszero(gf a); -gf PQCLEAN_MCELIECE460896_VEC_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE460896_VEC_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE460896_VEC_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE460896_VEC_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE460896_VEC_gf_inv(gf in); - -void PQCLEAN_MCELIECE460896_VEC_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/operations.c b/crypto_kem/mceliece/mceliece460896/vec/operations.c deleted file mode 100644 index 3ecd54ce..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE460896_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE460896_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE460896_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE460896_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE460896_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE460896_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE460896_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE460896_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE460896_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE460896_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE460896_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE460896_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE460896_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/params.h b/crypto_kem/mceliece/mceliece460896/vec/params.h deleted file mode 100644 index a8a9184d..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_PARAMS_H -#define PQCLEAN_MCELIECE460896_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 4608 -#define SYS_T 96 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/pk_gen.c b/crypto_kem/mceliece/mceliece460896/vec/pk_gen.c deleted file mode 100644 index b95406d7..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/pk_gen.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -int PQCLEAN_MCELIECE460896_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - const int block_idx = NBLOCKS_I - 1; - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 128 ]; - - // compute the inverses - - PQCLEAN_MCELIECE460896_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE460896_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE460896_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE460896_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - uint64_t column[ PK_NROWS ]; - - for (i = 0; i < PK_NROWS; i++) { - column[i] = mat[ i ][ block_idx ]; - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE460896_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - for (i = 0; i < PK_NROWS; i++) { - mat[ i ][ block_idx ] = column[i]; - } - - for (row = 0; row < PK_NROWS; row++) { - for (k = 0; k < NBLOCKS_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS_H - 1; k++) { - one_row[k] = (one_row[k] >> tail) | (one_row[k + 1] << (64 - tail)); - PQCLEAN_MCELIECE460896_VEC_store8(pk, one_row[k]); - pk += 8; - } - - one_row[k] >>= tail; - PQCLEAN_MCELIECE460896_VEC_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/pk_gen.h b/crypto_kem/mceliece/mceliece460896/vec/pk_gen.h deleted file mode 100644 index 03f373e9..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE460896_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include - -int PQCLEAN_MCELIECE460896_VEC_pk_gen(uint8_t * /*pk*/, uint32_t * /*perm*/, const uint8_t * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece460896/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece460896/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece460896/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece460896/vec/sk_gen.c b/crypto_kem/mceliece/mceliece460896/vec/sk_gen.c deleted file mode 100644 index 176e097e..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE460896_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE460896_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE460896_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE460896_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE460896_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE460896_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE460896_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE460896_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/sk_gen.h b/crypto_kem/mceliece/mceliece460896/vec/sk_gen.h deleted file mode 100644 index 9ee8b1b9..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE460896_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE460896_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE460896_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/transpose.c b/crypto_kem/mceliece/mceliece460896/vec/transpose.c deleted file mode 100644 index 0a361e10..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE460896_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece460896/vec/transpose.h b/crypto_kem/mceliece/mceliece460896/vec/transpose.h deleted file mode 100644 index 9413e918..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE460896_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE460896_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/util.c b/crypto_kem/mceliece/mceliece460896/vec/util.c deleted file mode 100644 index 23620c1b..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/util.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - This file is for loading/storing data in a little-endian fashion -*/ -#include "util.h" - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE460896_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE460896_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE460896_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE460896_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE460896_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE460896_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[0][i] = v[0]; - out[1][i] = v[1]; - } -} - -void PQCLEAN_MCELIECE460896_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE460896_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece460896/vec/util.h b/crypto_kem/mceliece/mceliece460896/vec/util.h deleted file mode 100644 index e2e88a62..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/util.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_UTIL_H -#define PQCLEAN_MCELIECE460896_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE460896_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE460896_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE460896_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE460896_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE460896_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE460896_VEC_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE460896_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896/vec/vec.c b/crypto_kem/mceliece/mceliece460896/vec/vec.c deleted file mode 100644 index e114c475..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/vec.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE460896_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE460896_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE460896_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE460896_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return ((int)a & 1) ^ 1; -} - - -void PQCLEAN_MCELIECE460896_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE460896_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE460896_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE460896_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE460896_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece460896/vec/vec.h b/crypto_kem/mceliece/mceliece460896/vec/vec.h deleted file mode 100644 index 86b8e356..00000000 --- a/crypto_kem/mceliece/mceliece460896/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896_VEC_VEC_H -#define PQCLEAN_MCELIECE460896_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE460896_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE460896_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE460896_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE460896_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE460896_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE460896_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE460896_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE460896_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/avx/LICENSE b/crypto_kem/mceliece/mceliece460896f/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece460896f/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece460896f/clean/LICENSE b/crypto_kem/mceliece/mceliece460896f/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece460896f/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece460896f/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece460896f/clean/Makefile.Microsoft_nmake deleted file mode 100644 index dc0fea95..00000000 --- a/crypto_kem/mceliece/mceliece460896f/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece460896f_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece460896f/sse/LICENSE b/crypto_kem/mceliece/mceliece460896f/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.c deleted file mode 100644 index e3fb5bc9..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE460896F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.h deleted file mode 100644 index 90645953..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE460896F_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE460896F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece460896f/sse/api.h b/crypto_kem/mceliece/mceliece460896f/sse/api.h deleted file mode 100644 index 4e38342e..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/api.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_API_H -#define PQCLEAN_MCELIECE460896F_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE460896F_SSE_CRYPTO_ALGNAME "Classic McEliece 460896f" -#define PQCLEAN_MCELIECE460896F_SSE_CRYPTO_PUBLICKEYBYTES 524160 -#define PQCLEAN_MCELIECE460896F_SSE_CRYPTO_SECRETKEYBYTES 13568 -#define PQCLEAN_MCELIECE460896F_SSE_CRYPTO_CIPHERTEXTBYTES 188 -#define PQCLEAN_MCELIECE460896F_SSE_CRYPTO_BYTES 32 - -int PQCLEAN_MCELIECE460896F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE460896F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE460896F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/benes.c b/crypto_kem/mceliece/mceliece460896f/sse/benes.c deleted file mode 100644 index da143de4..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE460896F_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE460896F_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(PQCLEAN_MCELIECE460896F_SSE_load8(ptr), PQCLEAN_MCELIECE460896F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE460896F_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(PQCLEAN_MCELIECE460896F_SSE_load8(ptr), PQCLEAN_MCELIECE460896F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE460896F_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/benes.h b/crypto_kem/mceliece/mceliece460896f/sse/benes.h deleted file mode 100644 index 2ff3d752..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_BENES_H -#define PQCLEAN_MCELIECE460896F_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE460896F_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE460896F_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/bm.c b/crypto_kem/mceliece/mceliece460896f/sse/bm.c deleted file mode 100644 index 72639e18..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/bm.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE460896F_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE460896F_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE460896F_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE460896F_SSE_vec128_or(PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE460896F_SSE_vec128_or(PQCLEAN_MCELIECE460896F_SSE_vec128_srl_2x(PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE460896F_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE460896F_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE460896F_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - uint64_t v[2]; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0, one << 63); - B[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0, one << 62); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_setzero(); - } - - for (N = 0; N < SYS_T * 2; N++) { - PQCLEAN_MCELIECE460896F_SSE_update_asm(interval, coefs[N]); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(prod, C, (vec128 *) interval); - d = PQCLEAN_MCELIECE460896F_SSE_vec_reduce_asm(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE460896F_SSE_update_asm(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - v[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(C[i], 0); - v[1] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(C[i], 1); - - out[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x((v[0] >> 31) | (v[1] << 33), v[1] >> 31); - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/bm.h b/crypto_kem/mceliece/mceliece460896f/sse/bm.h deleted file mode 100644 index 4e365fd3..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_BM_H -#define PQCLEAN_MCELIECE460896F_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE460896F_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/consts.S b/crypto_kem/mceliece/mceliece460896f/sse/consts.S deleted file mode 100644 index 5deeb764..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE460896F_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE460896F_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE460896F_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE460896F_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE460896F_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE460896F_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE460896F_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE460896F_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE460896F_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE460896F_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE460896F_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE460896F_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE460896F_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE460896F_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/consts.inc b/crypto_kem/mceliece/mceliece460896f/sse/consts.inc deleted file mode 100644 index c9c5045e..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece460896f/sse/controlbits.c b/crypto_kem/mceliece/mceliece460896f/sse/controlbits.c deleted file mode 100644 index bdbc5587..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE460896F_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE460896F_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE460896F_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE460896F_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/controlbits.h b/crypto_kem/mceliece/mceliece460896f/sse/controlbits.h deleted file mode 100644 index a33065ad..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE460896F_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE460896F_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE460896F_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece460896f/sse/crypto_hash.h deleted file mode 100644 index 96a38648..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE460896F_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece460896f/sse/decrypt.c b/crypto_kem/mceliece/mceliece460896f/sse/decrypt.c deleted file mode 100644 index 448c906f..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/decrypt.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE460896F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896F_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE460896F_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 64; i++) { - v[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE460896F_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE460896F_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 64; i++) { - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE460896F_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE460896F_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u64( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_or(PQCLEAN_MCELIECE460896F_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE460896F_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE460896F_SSE_vec128_or(diff, PQCLEAN_MCELIECE460896F_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE460896F_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE460896F_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE460896F_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE460896F_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE460896F_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE460896F_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE460896F_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE460896F_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE460896F_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE460896F_SSE_benes(error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/decrypt.h b/crypto_kem/mceliece/mceliece460896f/sse/decrypt.h deleted file mode 100644 index 97063297..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE460896F_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE460896F_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/encrypt.c b/crypto_kem/mceliece/mceliece460896f/sse/encrypt.c deleted file mode 100644 index 8f863c2b..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/encrypt.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE460896F_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((unsigned char *) ind, sizeof(ind)); - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - PQCLEAN_MCELIECE460896F_SSE_store8(e, e_int[i]); - e += 8; - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE460896F_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - PQCLEAN_MCELIECE460896F_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/encrypt.h b/crypto_kem/mceliece/mceliece460896f/sse/encrypt.h deleted file mode 100644 index d7b95668..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE460896F_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE460896F_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/fft.c b/crypto_kem/mceliece/mceliece460896f/sse/fft.c deleted file mode 100644 index baa9072f..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/fft.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE460896F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE460896F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE460896F_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE460896F_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/fft.h b/crypto_kem/mceliece/mceliece460896f/sse/fft.h deleted file mode 100644 index 6ffe7a87..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_FFT_H -#define PQCLEAN_MCELIECE460896F_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE460896F_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/fft_tr.c b/crypto_kem/mceliece/mceliece460896f/sse/fft_tr.c deleted file mode 100644 index 018261b3..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/fft_tr.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE460896F_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE460896F_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE460896F_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896F_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896F_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -/* justifying the length of the output */ -static void postprocess(vec128 out[][GFBITS]) { - int i; - uint64_t v[2]; - - for (i = 0; i < 13; i++) { - v[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(out[1][i], 0); - v[1] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(out[1][i], 1); - - v[1] = 0; - - out[1][i] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE460896F_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/fft_tr.h b/crypto_kem/mceliece/mceliece460896f/sse/fft_tr.h deleted file mode 100644 index 23b4cb38..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE460896F_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE460896F_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/gf.c b/crypto_kem/mceliece/mceliece460896f/sse/gf.c deleted file mode 100644 index 05611346..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/gf.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE460896F_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE460896F_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE460896F_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE460896F_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE460896F_SSE_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE460896F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[191]; - - for (i = 0; i < 191; i++) { - prod[i] = 0; - } - - for (i = 0; i < 96; i++) { - for (j = 0; j < 96; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE460896F_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 190; i >= 96; i--) { - prod[i - 85] ^= PQCLEAN_MCELIECE460896F_SSE_gf_mul(prod[i], (gf) 714); - prod[i - 91] ^= PQCLEAN_MCELIECE460896F_SSE_gf_mul(prod[i], (gf) 5296); - prod[i - 92] ^= PQCLEAN_MCELIECE460896F_SSE_gf_mul(prod[i], (gf) 728); - prod[i - 96] ^= PQCLEAN_MCELIECE460896F_SSE_gf_mul(prod[i], (gf) 5881); - } - - for (i = 0; i < 96; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/gf.h b/crypto_kem/mceliece/mceliece460896f/sse/gf.h deleted file mode 100644 index 5a230bf2..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_GF_H -#define PQCLEAN_MCELIECE460896F_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE460896F_SSE_gf_iszero(gf a); -gf PQCLEAN_MCELIECE460896F_SSE_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE460896F_SSE_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE460896F_SSE_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE460896F_SSE_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE460896F_SSE_gf_inv(gf in); - -void PQCLEAN_MCELIECE460896F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/operations.c b/crypto_kem/mceliece/mceliece460896f/sse/operations.c deleted file mode 100644 index efa4f68d..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE460896F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE460896F_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE460896F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE460896F_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE460896F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE460896F_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE460896F_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE460896F_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE460896F_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE460896F_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE460896F_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE460896F_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE460896F_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/params.h b/crypto_kem/mceliece/mceliece460896f/sse/params.h deleted file mode 100644 index 55f1893d..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_PARAMS_H -#define PQCLEAN_MCELIECE460896F_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 4608 -#define SYS_T 96 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/pk_gen.c b/crypto_kem/mceliece/mceliece460896f/sse/pk_gen.c deleted file mode 100644 index 9c3ebc12..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/pk_gen.c +++ /dev/null @@ -1,344 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -static void transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - return (int)_tzcnt_u64(in); -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 127) / 128) * 2 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = mat[ row + i ][ block_idx ]; - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = mat[ i + j ][ block_idx ]; - } - - transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx ] = buf[j]; - } - } - - return 0; -} - - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS1_I ((GFBITS * SYS_T + 63) / 64) -int PQCLEAN_MCELIECE460896F_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int tail = (GFBITS * SYS_T) % 64; - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[64][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE460896F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896F_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE460896F_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896F_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE460896F_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE460896F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - PQCLEAN_MCELIECE460896F_SSE_store_i(pk, mat[i][ NBLOCKS1_I - 1 ] >> tail, (64 - tail) / 8); - pk += (64 - tail) / 8; - - for (j = NBLOCKS1_I; j < NBLOCKS1_H; j++) { - PQCLEAN_MCELIECE460896F_SSE_store8(pk, mat[i][j]); - pk += 8; - } - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/pk_gen.h b/crypto_kem/mceliece/mceliece460896f/sse/pk_gen.h deleted file mode 100644 index e239e02d..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE460896F_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE460896F_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece460896f/sse/scalars_2x.inc deleted file mode 100644 index 58789a47..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece460896f/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece460896f/sse/scalars_4x.inc deleted file mode 100644 index 59918715..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/sk_gen.c b/crypto_kem/mceliece/mceliece460896f/sse/sk_gen.c deleted file mode 100644 index 7c1e0107..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE460896F_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE460896F_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE460896F_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE460896F_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE460896F_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE460896F_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE460896F_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE460896F_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/sk_gen.h b/crypto_kem/mceliece/mceliece460896f/sse/sk_gen.h deleted file mode 100644 index 03c6c0a8..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE460896F_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE460896F_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE460896F_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece460896f/sse/syndrome_asm.S deleted file mode 100644 index ed72124a..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/syndrome_asm.S +++ /dev/null @@ -1,960 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE460896F_SSE_syndrome_asm -.global PQCLEAN_MCELIECE460896F_SSE_syndrome_asm -_PQCLEAN_MCELIECE460896F_SSE_syndrome_asm: -PQCLEAN_MCELIECE460896F_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 523740 -# asm 1: add $523740,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1248 -# asm 1: mov $1248,>row=int64#5 -# asm 2: mov $1248,>row=%r8 -mov $1248,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 156 ] -# asm 1: movdqu 156(ee=reg128#2 -# asm 2: movdqu 156(ee=%xmm1 -movdqu 156(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 172 ] -# asm 1: movdqu 172(ee=reg128#3 -# asm 2: movdqu 172(ee=%xmm2 -movdqu 172(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 188 ] -# asm 1: movdqu 188(ee=reg128#3 -# asm 2: movdqu 188(ee=%xmm2 -movdqu 188(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 204 ] -# asm 1: movdqu 204(ee=reg128#3 -# asm 2: movdqu 204(ee=%xmm2 -movdqu 204(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 220 ] -# asm 1: movdqu 220(ee=reg128#3 -# asm 2: movdqu 220(ee=%xmm2 -movdqu 220(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 236 ] -# asm 1: movdqu 236(ee=reg128#3 -# asm 2: movdqu 236(ee=%xmm2 -movdqu 236(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 252 ] -# asm 1: movdqu 252(ee=reg128#3 -# asm 2: movdqu 252(ee=%xmm2 -movdqu 252(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 268 ] -# asm 1: movdqu 268(ee=reg128#3 -# asm 2: movdqu 268(ee=%xmm2 -movdqu 268(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 284 ] -# asm 1: movdqu 284(ee=reg128#3 -# asm 2: movdqu 284(ee=%xmm2 -movdqu 284(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 300 ] -# asm 1: movdqu 300(ee=reg128#3 -# asm 2: movdqu 300(ee=%xmm2 -movdqu 300(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 316 ] -# asm 1: movdqu 316(ee=reg128#3 -# asm 2: movdqu 316(ee=%xmm2 -movdqu 316(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 332 ] -# asm 1: movdqu 332(ee=reg128#3 -# asm 2: movdqu 332(ee=%xmm2 -movdqu 332(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 348 ] -# asm 1: movdqu 348(ee=reg128#3 -# asm 2: movdqu 348(ee=%xmm2 -movdqu 348(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 364 ] -# asm 1: movdqu 364(ee=reg128#3 -# asm 2: movdqu 364(ee=%xmm2 -movdqu 364(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 380 ] -# asm 1: movdqu 380(ee=reg128#3 -# asm 2: movdqu 380(ee=%xmm2 -movdqu 380(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 396 ] -# asm 1: movdqu 396(ee=reg128#3 -# asm 2: movdqu 396(ee=%xmm2 -movdqu 396(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 412 ] -# asm 1: movdqu 412(ee=reg128#3 -# asm 2: movdqu 412(ee=%xmm2 -movdqu 412(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 428 ] -# asm 1: movdqu 428(ee=reg128#3 -# asm 2: movdqu 428(ee=%xmm2 -movdqu 428(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 444 ] -# asm 1: movdqu 444(ee=reg128#3 -# asm 2: movdqu 444(ee=%xmm2 -movdqu 444(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 460 ] -# asm 1: movdqu 460(ee=reg128#3 -# asm 2: movdqu 460(ee=%xmm2 -movdqu 460(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 476 ] -# asm 1: movdqu 476(ee=reg128#3 -# asm 2: movdqu 476(ee=%xmm2 -movdqu 476(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 336(pp=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 492 ] -# asm 1: movdqu 492(ee=reg128#3 -# asm 2: movdqu 492(ee=%xmm2 -movdqu 492(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 352(pp=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 508 ] -# asm 1: movdqu 508(ee=reg128#3 -# asm 2: movdqu 508(ee=%xmm2 -movdqu 508(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 368(pp=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 524 ] -# asm 1: movdqu 524(ee=reg128#3 -# asm 2: movdqu 524(ee=%xmm2 -movdqu 524(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 384(pp=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 540 ] -# asm 1: movdqu 540(ee=reg128#3 -# asm 2: movdqu 540(ee=%xmm2 -movdqu 540(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 400(pp=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 556 ] -# asm 1: movdqu 556(ee=reg128#3 -# asm 2: movdqu 556(ee=%xmm2 -movdqu 556(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = *(uint32 *)(input_1 + 416) -# asm 1: movl 416(s=int64#6d -# asm 2: movl 416(s=%r9d -movl 416(%rsi),%r9d - -# qhasm: e = *(uint32 *)(input_2 + 572) -# asm 1: movl 572(e=int64#7d -# asm 2: movl 572(e=%eax -movl 572(%rdx),%eax - -# qhasm: s &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 16(ss=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#2 -# asm 2: movdqu 16(ee=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 32(ss=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#2 -# asm 2: movdqu 32(ee=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 48(ss=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#2 -# asm 2: movdqu 48(ee=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 64(ss=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#2 -# asm 2: movdqu 64(ee=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 80(ss=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#2 -# asm 2: movdqu 80(ee=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 96(ss=%xmm0 -movdqu 96(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#2 -# asm 2: movdqu 96(ee=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 112(ss=%xmm0 -movdqu 112(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#2 -# asm 2: movdqu 112(ee=%xmm1 -movdqu 112(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor s=int64#2 -# asm 2: movq 128(s=%rsi -movq 128(%rdi),%rsi - -# qhasm: e = mem64[ input_2 + 128 ] -# asm 1: movq 128(e=int64#4 -# asm 2: movq 128(e=%rcx -movq 128(%rdx),%rcx - -# qhasm: s ^= e -# asm 1: xor s=int64#2 -# asm 2: movq 136(s=%rsi -movq 136(%rdi),%rsi - -# qhasm: e = mem64[ input_2 + 136 ] -# asm 1: movq 136(e=int64#4 -# asm 2: movq 136(e=%rcx -movq 136(%rdx),%rcx - -# qhasm: s ^= e -# asm 1: xor s=int64#2 -# asm 2: movq 144(s=%rsi -movq 144(%rdi),%rsi - -# qhasm: e = mem64[ input_2 + 144 ] -# asm 1: movq 144(e=int64#4 -# asm 2: movq 144(e=%rcx -movq 144(%rdx),%rcx - -# qhasm: s ^= e -# asm 1: xor s=int64#2d -# asm 2: movl 152(s=%esi -movl 152(%rdi),%esi - -# qhasm: e = *(uint32 *)( input_2 + 152 ) -# asm 1: movl 152(e=int64#3d -# asm 2: movl 152(e=%edx -movl 152(%rdx),%edx - -# qhasm: s ^= e -# asm 1: xor mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE460896F_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE460896F_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE460896F_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE460896F_SSE_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE460896F_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE460896F_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE460896F_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE460896F_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE460896F_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE460896F_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE460896F_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE460896F_SSE_vec128_set2x( PQCLEAN_MCELIECE460896F_SSE_load8(in), PQCLEAN_MCELIECE460896F_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE460896F_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE460896F_SSE_store8(out + 0, PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE460896F_SSE_store8(out + 8, PQCLEAN_MCELIECE460896F_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece460896f/sse/util.h b/crypto_kem/mceliece/mceliece460896f/sse/util.h deleted file mode 100644 index 8abac405..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_UTIL_H -#define PQCLEAN_MCELIECE460896F_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE460896F_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE460896F_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE460896F_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE460896F_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE460896F_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE460896F_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE460896F_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE460896F_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE460896F_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece460896f/sse/vec128.c b/crypto_kem/mceliece/mceliece460896f/sse/vec128.c deleted file mode 100644 index 3fa07585..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE460896F_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE460896F_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE460896F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE460896F_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE460896F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE460896F_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE460896F_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE460896F_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE460896F_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE460896F_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE460896F_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE460896F_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece460896f/sse/vec128.h b/crypto_kem/mceliece/mceliece460896f/sse/vec128.h deleted file mode 100644 index cf020836..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_SSE_VEC128_H -#define PQCLEAN_MCELIECE460896F_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE460896F_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE460896F_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE460896F_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE460896F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE460896F_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE460896F_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE460896F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE460896F_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE460896F_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece460896f/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece460896f/sse/vec128_mul_asm.S deleted file mode 100644 index 0c0afcb3..00000000 --- a/crypto_kem/mceliece/mceliece460896f/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE460896F_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE460896F_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE460896F_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE460896F_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE460896F_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece460896f/vec/api.h b/crypto_kem/mceliece/mceliece460896f/vec/api.h deleted file mode 100644 index e542e78d..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/api.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_API_H -#define PQCLEAN_MCELIECE460896F_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE460896F_VEC_CRYPTO_ALGNAME "Classic McEliece 460896f" -#define PQCLEAN_MCELIECE460896F_VEC_CRYPTO_PUBLICKEYBYTES 524160 -#define PQCLEAN_MCELIECE460896F_VEC_CRYPTO_SECRETKEYBYTES 13568 -#define PQCLEAN_MCELIECE460896F_VEC_CRYPTO_CIPHERTEXTBYTES 188 -#define PQCLEAN_MCELIECE460896F_VEC_CRYPTO_BYTES 32 - -int PQCLEAN_MCELIECE460896F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE460896F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE460896F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/benes.c b/crypto_kem/mceliece/mceliece460896f/vec/benes.c deleted file mode 100644 index 30f9cdfd..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE460896F_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE460896F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/benes.h b/crypto_kem/mceliece/mceliece460896f/vec/benes.h deleted file mode 100644 index e7b11fef..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_BENES_H -#define PQCLEAN_MCELIECE460896F_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE460896F_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/bm.c b/crypto_kem/mceliece/mceliece460896f/vec/bm.c deleted file mode 100644 index fa3a22e9..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/bm.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE460896F_VEC_bm(vec out[][GFBITS], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = one << 63; - B[0][0] = 0; - B[1][0] = one << 62; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - update(interval, coefs[N]); - - PQCLEAN_MCELIECE460896F_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(prod[1], C[1], interval[1]); - - d = vec_reduce(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE460896F_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE460896F_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - out[0][i] = (C[0][i] >> 31) | (C[1][i] << 33); - out[1][i] = C[1][i] >> 31; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/bm.h b/crypto_kem/mceliece/mceliece460896f/vec/bm.h deleted file mode 100644 index cef81820..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_BM_H -#define PQCLEAN_MCELIECE460896F_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE460896F_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/consts.inc b/crypto_kem/mceliece/mceliece460896f/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece460896f/vec/controlbits.c b/crypto_kem/mceliece/mceliece460896f/vec/controlbits.c deleted file mode 100644 index c97970de..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE460896F_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE460896F_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE460896F_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE460896F_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/controlbits.h b/crypto_kem/mceliece/mceliece460896f/vec/controlbits.h deleted file mode 100644 index df33325e..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE460896F_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE460896F_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE460896F_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece460896f/vec/crypto_hash.h deleted file mode 100644 index b56017df..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE460896F_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece460896f/vec/decrypt.c b/crypto_kem/mceliece/mceliece460896f/vec/decrypt.c deleted file mode 100644 index 67d45c40..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/decrypt.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE460896F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896F_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE460896F_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 128; i++) { - recv[i] = PQCLEAN_MCELIECE460896F_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE460896F_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static int weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE460896F_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE460896F_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE460896F_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE460896F_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE460896F_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE460896F_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE460896F_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE460896F_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE460896F_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE460896F_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = (uint16_t)weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/decrypt.h b/crypto_kem/mceliece/mceliece460896f/vec/decrypt.h deleted file mode 100644 index 23e971fa..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE460896F_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE460896F_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/encrypt.c b/crypto_kem/mceliece/mceliece460896f/vec/encrypt.c deleted file mode 100644 index 4a268641..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/encrypt.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint8_t *ind8 = (uint8_t *)ind; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - PQCLEAN_MCELIECE460896F_VEC_store8(e, e_int[i]); - e += 8; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE460896F_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE460896F_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= PQCLEAN_MCELIECE460896F_VEC_load4(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE460896F_VEC_load4(e_ptr8 + 8 * j); - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE460896F_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/encrypt.h b/crypto_kem/mceliece/mceliece460896f/vec/encrypt.h deleted file mode 100644 index bef8e1c0..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE460896F_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE460896F_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/fft.c b/crypto_kem/mceliece/mceliece460896f/vec/fft.c deleted file mode 100644 index 2469c8e4..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/fft.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE460896F_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // adding the part contributed by x^128 - -// for (i = 0; i < 128; i++) -// for (b = 0; b < GFBITS; b++) -// out[i][b] ^= powers[i][b]; -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE460896F_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/fft.h b/crypto_kem/mceliece/mceliece460896f/vec/fft.h deleted file mode 100644 index 505fb7c0..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_FFT_H -#define PQCLEAN_MCELIECE460896F_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE460896F_VEC_fft(vec out[][ GFBITS ], vec in[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/fft_tr.c b/crypto_kem/mceliece/mceliece460896f/vec/fft_tr.c deleted file mode 100644 index d68baf61..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/fft_tr.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE460896F_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE460896F_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE460896F_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE460896F_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896F_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE460896F_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -/* justifying the length of the output */ -static void postprocess(vec out[4][GFBITS]) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[3][i] = 0; - } -} - -void PQCLEAN_MCELIECE460896F_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/fft_tr.h b/crypto_kem/mceliece/mceliece460896f/vec/fft_tr.h deleted file mode 100644 index 8296a6a6..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE460896F_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE460896F_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/gf.c b/crypto_kem/mceliece/mceliece460896f/vec/gf.c deleted file mode 100644 index 86478f6e..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/gf.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE460896F_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE460896F_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE460896F_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE460896F_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE460896F_VEC_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE460896F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[191]; - - for (i = 0; i < 191; i++) { - prod[i] = 0; - } - - for (i = 0; i < 96; i++) { - for (j = 0; j < 96; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE460896F_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 190; i >= 96; i--) { - prod[i - 85] ^= PQCLEAN_MCELIECE460896F_VEC_gf_mul(prod[i], (gf) 714); - prod[i - 91] ^= PQCLEAN_MCELIECE460896F_VEC_gf_mul(prod[i], (gf) 5296); - prod[i - 92] ^= PQCLEAN_MCELIECE460896F_VEC_gf_mul(prod[i], (gf) 728); - prod[i - 96] ^= PQCLEAN_MCELIECE460896F_VEC_gf_mul(prod[i], (gf) 5881); - } - - for (i = 0; i < 96; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/gf.h b/crypto_kem/mceliece/mceliece460896f/vec/gf.h deleted file mode 100644 index 89a29ebf..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_GF_H -#define PQCLEAN_MCELIECE460896F_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE460896F_VEC_gf_iszero(gf a); -gf PQCLEAN_MCELIECE460896F_VEC_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE460896F_VEC_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE460896F_VEC_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE460896F_VEC_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE460896F_VEC_gf_inv(gf in); - -void PQCLEAN_MCELIECE460896F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/operations.c b/crypto_kem/mceliece/mceliece460896f/vec/operations.c deleted file mode 100644 index b6fa6fb5..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE460896F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE460896F_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE460896F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE460896F_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE460896F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE460896F_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE460896F_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE460896F_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE460896F_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE460896F_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE460896F_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE460896F_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE460896F_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/params.h b/crypto_kem/mceliece/mceliece460896f/vec/params.h deleted file mode 100644 index 4314bb66..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_PARAMS_H -#define PQCLEAN_MCELIECE460896F_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 4608 -#define SYS_T 96 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/pk_gen.c b/crypto_kem/mceliece/mceliece460896f/vec/pk_gen.c deleted file mode 100644 index 5b1bb6cb..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/pk_gen.c +++ /dev/null @@ -1,301 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - int i, b, m = 0, r = 0; - - for (i = 0; i < 64; i++) { - b = ((int)(in >> i)) & 1; - m |= b; - r += (m ^ 1) & (b ^ 1); - } - - return r; -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 63) / 64) ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = mat[ row + i ][ block_idx ]; - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = mat[ i + j ][ block_idx ]; - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx ] = buf[j]; - } - } - - return 0; -} - -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) -int PQCLEAN_MCELIECE460896F_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE460896F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE460896F_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE460896F_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE460896F_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE460896F_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE460896F_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - PQCLEAN_MCELIECE460896F_VEC_store_i(pk, mat[i][ NBLOCKS_I - 1 ] >> tail, (64 - tail) / 8); - pk += (64 - tail) / 8; - - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE460896F_VEC_store8(pk, mat[i][j]); - pk += 8; - } - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/pk_gen.h b/crypto_kem/mceliece/mceliece460896f/vec/pk_gen.h deleted file mode 100644 index eb18ff5d..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE460896F_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include - -int PQCLEAN_MCELIECE460896F_VEC_pk_gen(uint8_t * /*pk*/, uint32_t * /*perm*/, const uint8_t * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece460896f/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece460896f/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece460896f/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece460896f/vec/sk_gen.c b/crypto_kem/mceliece/mceliece460896f/vec/sk_gen.c deleted file mode 100644 index 09fd4de1..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE460896F_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE460896F_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE460896F_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE460896F_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE460896F_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE460896F_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE460896F_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE460896F_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/sk_gen.h b/crypto_kem/mceliece/mceliece460896f/vec/sk_gen.h deleted file mode 100644 index 0fe45e81..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE460896F_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE460896F_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE460896F_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/transpose.c b/crypto_kem/mceliece/mceliece460896f/vec/transpose.c deleted file mode 100644 index e72c6f3e..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece460896f/vec/transpose.h b/crypto_kem/mceliece/mceliece460896f/vec/transpose.h deleted file mode 100644 index f5f026d0..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE460896F_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE460896F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/util.c b/crypto_kem/mceliece/mceliece460896f/vec/util.c deleted file mode 100644 index 22ab6ab7..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/util.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - This file is for loading/storing data in a little-endian fashion -*/ -#include "util.h" - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE460896F_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE460896F_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE460896F_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE460896F_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE460896F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE460896F_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[0][i] = v[0]; - out[1][i] = v[1]; - } -} - -void PQCLEAN_MCELIECE460896F_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE460896F_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece460896f/vec/util.h b/crypto_kem/mceliece/mceliece460896f/vec/util.h deleted file mode 100644 index 699ba62b..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/util.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_UTIL_H -#define PQCLEAN_MCELIECE460896F_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE460896F_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE460896F_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE460896F_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE460896F_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE460896F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE460896F_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE460896F_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/vec.c b/crypto_kem/mceliece/mceliece460896f/vec/vec.c deleted file mode 100644 index 4416206a..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/vec.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE460896F_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE460896F_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE460896F_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE460896F_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return ((int)a & 1) ^ 1; -} - - -void PQCLEAN_MCELIECE460896F_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE460896F_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE460896F_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE460896F_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE460896F_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE460896F_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece460896f/vec/vec.h b/crypto_kem/mceliece/mceliece460896f/vec/vec.h deleted file mode 100644 index 2f385ea4..00000000 --- a/crypto_kem/mceliece/mceliece460896f/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE460896F_VEC_VEC_H -#define PQCLEAN_MCELIECE460896F_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE460896F_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE460896F_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE460896F_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE460896F_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE460896F_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE460896F_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE460896F_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE460896F_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/avx/LICENSE b/crypto_kem/mceliece/mceliece6688128/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6688128/clean/LICENSE b/crypto_kem/mceliece/mceliece6688128/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6688128/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece6688128/clean/Makefile.Microsoft_nmake deleted file mode 100644 index a69777fe..00000000 --- a/crypto_kem/mceliece/mceliece6688128/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece6688128_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece6688128/sse/LICENSE b/crypto_kem/mceliece/mceliece6688128/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.c deleted file mode 100644 index 2d195c02..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE6688128_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.h deleted file mode 100644 index eb8ef292..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE6688128_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6688128_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128/sse/api.h b/crypto_kem/mceliece/mceliece6688128/sse/api.h deleted file mode 100644 index a1e593a2..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_API_H -#define PQCLEAN_MCELIECE6688128_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE6688128_SSE_CRYPTO_ALGNAME "Classic McEliece 6688128" -#define PQCLEAN_MCELIECE6688128_SSE_CRYPTO_PUBLICKEYBYTES 1044992 -#define PQCLEAN_MCELIECE6688128_SSE_CRYPTO_SECRETKEYBYTES 13892 -#define PQCLEAN_MCELIECE6688128_SSE_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE6688128_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6688128_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6688128_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6688128_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/benes.c b/crypto_kem/mceliece/mceliece6688128/sse/benes.c deleted file mode 100644 index 1e13733d..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE6688128_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE6688128_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(PQCLEAN_MCELIECE6688128_SSE_load8(ptr), PQCLEAN_MCELIECE6688128_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE6688128_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(PQCLEAN_MCELIECE6688128_SSE_load8(ptr), PQCLEAN_MCELIECE6688128_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6688128_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/benes.h b/crypto_kem/mceliece/mceliece6688128/sse/benes.h deleted file mode 100644 index 4561e5ac..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_BENES_H -#define PQCLEAN_MCELIECE6688128_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE6688128_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE6688128_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/bm.c b/crypto_kem/mceliece/mceliece6688128/sse/bm.c deleted file mode 100644 index f5cf6e93..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/bm.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE6688128_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE6688128_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE6688128_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE6688128_SSE_vec128_or(PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE6688128_SSE_vec128_or(PQCLEAN_MCELIECE6688128_SSE_vec128_srl_2x(PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE6688128_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE6688128_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE6688128_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE6688128_SSE_vec128_setzero(); - B[0] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0, one << 63); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_setzero(); - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(prod, C, (vec128 *) interval); - PQCLEAN_MCELIECE6688128_SSE_update_asm(interval, coefs[N]); - d = PQCLEAN_MCELIECE6688128_SSE_vec_reduce_asm(prod); - - t = PQCLEAN_MCELIECE6688128_SSE_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE6688128_SSE_update_asm(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - c0 = t >> 32; - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE6688128_SSE_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(out, out, C); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/bm.h b/crypto_kem/mceliece/mceliece6688128/sse/bm.h deleted file mode 100644 index 738bca92..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_BM_H -#define PQCLEAN_MCELIECE6688128_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6688128_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/consts.S b/crypto_kem/mceliece/mceliece6688128/sse/consts.S deleted file mode 100644 index d5b5d790..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE6688128_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE6688128_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE6688128_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE6688128_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE6688128_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE6688128_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE6688128_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE6688128_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE6688128_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE6688128_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE6688128_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE6688128_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE6688128_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE6688128_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/consts.inc b/crypto_kem/mceliece/mceliece6688128/sse/consts.inc deleted file mode 100644 index 88c74297..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece6688128/sse/controlbits.c b/crypto_kem/mceliece/mceliece6688128/sse/controlbits.c deleted file mode 100644 index 46bdc1ba..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6688128_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6688128_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6688128_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6688128_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/controlbits.h b/crypto_kem/mceliece/mceliece6688128/sse/controlbits.h deleted file mode 100644 index a0b72616..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE6688128_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6688128_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6688128_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece6688128/sse/crypto_hash.h deleted file mode 100644 index b5846c60..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6688128_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128/sse/decrypt.c b/crypto_kem/mceliece/mceliece6688128/sse/decrypt.c deleted file mode 100644 index 1a28a407..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/decrypt.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6688128_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE6688128_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 64; i++) { - v[0] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE6688128_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE6688128_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 64; i++) { - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE6688128_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE6688128_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u64( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_or(PQCLEAN_MCELIECE6688128_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE6688128_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE6688128_SSE_vec128_or(diff, PQCLEAN_MCELIECE6688128_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6688128_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6688128_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6688128_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE6688128_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6688128_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6688128_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE6688128_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6688128_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6688128_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6688128_SSE_benes(error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/decrypt.h b/crypto_kem/mceliece/mceliece6688128/sse/decrypt.h deleted file mode 100644 index c7a27be5..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE6688128_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6688128_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/encrypt.c b/crypto_kem/mceliece/mceliece6688128/sse/encrypt.c deleted file mode 100644 index 261322a9..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/encrypt.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE6688128_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind, sizeof(ind)); - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6688128_SSE_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6688128_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - - PQCLEAN_MCELIECE6688128_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/encrypt.h b/crypto_kem/mceliece/mceliece6688128/sse/encrypt.h deleted file mode 100644 index 0c7be6e2..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE6688128_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6688128_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/fft.c b/crypto_kem/mceliece/mceliece6688128/sse/fft.c deleted file mode 100644 index f53124ac..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/fft.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE6688128_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE6688128_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec128 powers[ 64 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE6688128_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } - - // adding the part contributed by x^128 - - for (i = 0; i < 64; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(out[i][b], powers[i][b]); - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6688128_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/fft.h b/crypto_kem/mceliece/mceliece6688128/sse/fft.h deleted file mode 100644 index 894d7ebb..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_FFT_H -#define PQCLEAN_MCELIECE6688128_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE6688128_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/fft_tr.c b/crypto_kem/mceliece/mceliece6688128/sse/fft_tr.c deleted file mode 100644 index c572efb1..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/fft_tr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE6688128_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6688128_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6688128_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -void PQCLEAN_MCELIECE6688128_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/fft_tr.h b/crypto_kem/mceliece/mceliece6688128/sse/fft_tr.h deleted file mode 100644 index 3af229d7..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE6688128_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6688128_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/gf.c b/crypto_kem/mceliece/mceliece6688128/sse/gf.c deleted file mode 100644 index 51394a40..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* field multiplication */ -gf PQCLEAN_MCELIECE6688128_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE6688128_SSE_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6688128_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6688128_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE6688128_SSE_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6688128_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6688128_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6688128_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE6688128_SSE_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE6688128_SSE_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE6688128_SSE_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/gf.h b/crypto_kem/mceliece/mceliece6688128/sse/gf.h deleted file mode 100644 index 3da367f6..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/gf.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_GF_H -#define PQCLEAN_MCELIECE6688128_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6688128_SSE_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE6688128_SSE_gf_mul(gf /*in0*/, gf /*in1*/); -uint64_t PQCLEAN_MCELIECE6688128_SSE_gf_mul2(gf /*a*/, gf /*b0*/, gf /*b1*/); -gf PQCLEAN_MCELIECE6688128_SSE_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE6688128_SSE_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE6688128_SSE_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/operations.c b/crypto_kem/mceliece/mceliece6688128/sse/operations.c deleted file mode 100644 index 61adb1df..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6688128_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6688128_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6688128_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6688128_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6688128_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6688128_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6688128_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6688128_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6688128_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6688128_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6688128_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/params.h b/crypto_kem/mceliece/mceliece6688128/sse/params.h deleted file mode 100644 index 806c4fc3..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_PARAMS_H -#define PQCLEAN_MCELIECE6688128_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6688 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/pk_gen.c b/crypto_kem/mceliece/mceliece6688128/sse/pk_gen.c deleted file mode 100644 index f309af05..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/pk_gen.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS1_I ((GFBITS * SYS_T + 63) / 64) -#define NBLOCKS2_I ((GFBITS * SYS_T + 127) / 128) -int PQCLEAN_MCELIECE6688128_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - const int block_idx = NBLOCKS1_I; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS1_I ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[64][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 128 ]; - - // compute the inverses - - PQCLEAN_MCELIECE6688128_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE6688128_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6688128_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_I; j++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS1_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS2_I; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS2_I; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6688128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - for (row = 0; row < PK_NROWS; row++) { - for (k = 0; k < NBLOCKS1_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS1_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS1_H - 1; k++) { - PQCLEAN_MCELIECE6688128_SSE_store8(pk, one_row[k]); - pk += 8; - } - - PQCLEAN_MCELIECE6688128_SSE_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/pk_gen.h b/crypto_kem/mceliece/mceliece6688128/sse/pk_gen.h deleted file mode 100644 index fd1e50bc..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE6688128_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE6688128_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/powers.inc b/crypto_kem/mceliece/mceliece6688128/sse/powers.inc deleted file mode 100644 index f92af938..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/powers.inc +++ /dev/null @@ -1,960 +0,0 @@ -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -} diff --git a/crypto_kem/mceliece/mceliece6688128/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece6688128/sse/scalars_2x.inc deleted file mode 100644 index 56f9cbd1..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece6688128/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece6688128/sse/scalars_4x.inc deleted file mode 100644 index 72153ec1..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/sk_gen.c b/crypto_kem/mceliece/mceliece6688128/sse/sk_gen.c deleted file mode 100644 index 5f6e099d..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6688128_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6688128_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6688128_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6688128_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6688128_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6688128_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6688128_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6688128_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/sk_gen.h b/crypto_kem/mceliece/mceliece6688128/sse/sk_gen.h deleted file mode 100644 index fdfb7eec..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE6688128_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6688128_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6688128_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece6688128/sse/syndrome_asm.S deleted file mode 100644 index 66b16611..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/syndrome_asm.S +++ /dev/null @@ -1,1260 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6688128_SSE_syndrome_asm -.global PQCLEAN_MCELIECE6688128_SSE_syndrome_asm -_PQCLEAN_MCELIECE6688128_SSE_syndrome_asm: -PQCLEAN_MCELIECE6688128_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 1044364 -# asm 1: add $1044364,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1664 -# asm 1: mov $1664,>row=int64#5 -# asm 2: mov $1664,>row=%r8 -mov $1664,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(ee=reg128#2 -# asm 2: movdqu 208(ee=%xmm1 -movdqu 208(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(ee=reg128#3 -# asm 2: movdqu 224(ee=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(ee=reg128#3 -# asm 2: movdqu 240(ee=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(ee=reg128#3 -# asm 2: movdqu 256(ee=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(ee=reg128#3 -# asm 2: movdqu 272(ee=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(ee=reg128#3 -# asm 2: movdqu 288(ee=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(ee=reg128#3 -# asm 2: movdqu 304(ee=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(ee=reg128#3 -# asm 2: movdqu 320(ee=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(ee=reg128#3 -# asm 2: movdqu 336(ee=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(ee=reg128#3 -# asm 2: movdqu 352(ee=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(ee=reg128#3 -# asm 2: movdqu 368(ee=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(ee=reg128#3 -# asm 2: movdqu 384(ee=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(ee=reg128#3 -# asm 2: movdqu 400(ee=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(ee=reg128#3 -# asm 2: movdqu 416(ee=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 432 ] -# asm 1: movdqu 432(ee=reg128#3 -# asm 2: movdqu 432(ee=%xmm2 -movdqu 432(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 448 ] -# asm 1: movdqu 448(ee=reg128#3 -# asm 2: movdqu 448(ee=%xmm2 -movdqu 448(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 464 ] -# asm 1: movdqu 464(ee=reg128#3 -# asm 2: movdqu 464(ee=%xmm2 -movdqu 464(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 480 ] -# asm 1: movdqu 480(ee=reg128#3 -# asm 2: movdqu 480(ee=%xmm2 -movdqu 480(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 496 ] -# asm 1: movdqu 496(ee=reg128#3 -# asm 2: movdqu 496(ee=%xmm2 -movdqu 496(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 512 ] -# asm 1: movdqu 512(ee=reg128#3 -# asm 2: movdqu 512(ee=%xmm2 -movdqu 512(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 528 ] -# asm 1: movdqu 528(ee=reg128#3 -# asm 2: movdqu 528(ee=%xmm2 -movdqu 528(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 336(pp=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 544 ] -# asm 1: movdqu 544(ee=reg128#3 -# asm 2: movdqu 544(ee=%xmm2 -movdqu 544(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 352(pp=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 560 ] -# asm 1: movdqu 560(ee=reg128#3 -# asm 2: movdqu 560(ee=%xmm2 -movdqu 560(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 368(pp=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 576 ] -# asm 1: movdqu 576(ee=reg128#3 -# asm 2: movdqu 576(ee=%xmm2 -movdqu 576(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 384(pp=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 592 ] -# asm 1: movdqu 592(ee=reg128#3 -# asm 2: movdqu 592(ee=%xmm2 -movdqu 592(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 400(pp=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 608 ] -# asm 1: movdqu 608(ee=reg128#3 -# asm 2: movdqu 608(ee=%xmm2 -movdqu 608(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 416(pp=%xmm1 -movdqu 416(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 624 ] -# asm 1: movdqu 624(ee=reg128#3 -# asm 2: movdqu 624(ee=%xmm2 -movdqu 624(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 432(pp=%xmm1 -movdqu 432(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 640 ] -# asm 1: movdqu 640(ee=reg128#3 -# asm 2: movdqu 640(ee=%xmm2 -movdqu 640(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 448(pp=%xmm1 -movdqu 448(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 656 ] -# asm 1: movdqu 656(ee=reg128#3 -# asm 2: movdqu 656(ee=%xmm2 -movdqu 656(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 464(pp=%xmm1 -movdqu 464(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 672 ] -# asm 1: movdqu 672(ee=reg128#3 -# asm 2: movdqu 672(ee=%xmm2 -movdqu 672(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 480(pp=%xmm1 -movdqu 480(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 688 ] -# asm 1: movdqu 688(ee=reg128#3 -# asm 2: movdqu 688(ee=%xmm2 -movdqu 688(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 496(pp=%xmm1 -movdqu 496(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 704 ] -# asm 1: movdqu 704(ee=reg128#3 -# asm 2: movdqu 704(ee=%xmm2 -movdqu 704(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 512(pp=%xmm1 -movdqu 512(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 720 ] -# asm 1: movdqu 720(ee=reg128#3 -# asm 2: movdqu 720(ee=%xmm2 -movdqu 720(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 528(pp=%xmm1 -movdqu 528(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 736 ] -# asm 1: movdqu 736(ee=reg128#3 -# asm 2: movdqu 736(ee=%xmm2 -movdqu 736(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 544(pp=%xmm1 -movdqu 544(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 752 ] -# asm 1: movdqu 752(ee=reg128#3 -# asm 2: movdqu 752(ee=%xmm2 -movdqu 752(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 560(pp=%xmm1 -movdqu 560(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 768 ] -# asm 1: movdqu 768(ee=reg128#3 -# asm 2: movdqu 768(ee=%xmm2 -movdqu 768(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 576(pp=%xmm1 -movdqu 576(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 784 ] -# asm 1: movdqu 784(ee=reg128#3 -# asm 2: movdqu 784(ee=%xmm2 -movdqu 784(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 592(pp=%xmm1 -movdqu 592(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 800 ] -# asm 1: movdqu 800(ee=reg128#3 -# asm 2: movdqu 800(ee=%xmm2 -movdqu 800(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = mem64[input_1 + 608] -# asm 1: movq 608(s=int64#6 -# asm 2: movq 608(s=%r9 -movq 608(%rsi),%r9 - -# qhasm: e = mem64[input_2 + 816] -# asm 1: movq 816(e=int64#7 -# asm 2: movq 816(e=%rax -movq 816(%rdx),%rax - -# qhasm: s &= e -# asm 1: and p=int64#7 -# asm 2: movq 616(p=%rax -movq 616(%rsi),%rax - -# qhasm: e = mem64[input_2 + 824] -# asm 1: movq 824(e=int64#8 -# asm 2: movq 824(e=%r10 -movq 824(%rdx),%r10 - -# qhasm: p &= e -# asm 1: and p=int64#7d -# asm 2: movl 624(p=%eax -movl 624(%rsi),%eax - -# qhasm: e = *(uint32 *)(input_2 + 832) -# asm 1: movl 832(e=int64#8d -# asm 2: movl 832(e=%r10d -movl 832(%rdx),%r10d - -# qhasm: p &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 16(ss=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#2 -# asm 2: movdqu 16(ee=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 32(ss=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#2 -# asm 2: movdqu 32(ee=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 48(ss=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#2 -# asm 2: movdqu 48(ee=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 64(ss=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#2 -# asm 2: movdqu 64(ee=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 80(ss=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#2 -# asm 2: movdqu 80(ee=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 96(ss=%xmm0 -movdqu 96(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#2 -# asm 2: movdqu 96(ee=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 112(ss=%xmm0 -movdqu 112(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#2 -# asm 2: movdqu 112(ee=%xmm1 -movdqu 112(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 128(ss=%xmm0 -movdqu 128(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(ee=reg128#2 -# asm 2: movdqu 128(ee=%xmm1 -movdqu 128(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 144(ss=%xmm0 -movdqu 144(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(ee=reg128#2 -# asm 2: movdqu 144(ee=%xmm1 -movdqu 144(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 160(ss=%xmm0 -movdqu 160(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(ee=reg128#2 -# asm 2: movdqu 160(ee=%xmm1 -movdqu 160(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 176(ss=%xmm0 -movdqu 176(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(ee=reg128#2 -# asm 2: movdqu 176(ee=%xmm1 -movdqu 176(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 192(ss=%xmm0 -movdqu 192(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(ee=reg128#2 -# asm 2: movdqu 192(ee=%xmm1 -movdqu 192(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6688128_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6688128_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6688128_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE6688128_SSE_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6688128_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6688128_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6688128_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6688128_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6688128_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE6688128_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6688128_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE6688128_SSE_vec128_set2x( PQCLEAN_MCELIECE6688128_SSE_load8(in), PQCLEAN_MCELIECE6688128_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE6688128_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE6688128_SSE_store8(out + 0, PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE6688128_SSE_store8(out + 8, PQCLEAN_MCELIECE6688128_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece6688128/sse/util.h b/crypto_kem/mceliece/mceliece6688128/sse/util.h deleted file mode 100644 index 4bdce0c9..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_UTIL_H -#define PQCLEAN_MCELIECE6688128_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE6688128_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE6688128_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE6688128_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE6688128_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE6688128_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE6688128_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE6688128_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE6688128_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE6688128_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128/sse/vec128.c b/crypto_kem/mceliece/mceliece6688128/sse/vec128.c deleted file mode 100644 index 6954af3c..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE6688128_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE6688128_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE6688128_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE6688128_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6688128_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE6688128_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6688128_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE6688128_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6688128_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6688128_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6688128_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6688128/sse/vec128.h b/crypto_kem/mceliece/mceliece6688128/sse/vec128.h deleted file mode 100644 index a567b1ee..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_SSE_VEC128_H -#define PQCLEAN_MCELIECE6688128_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE6688128_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE6688128_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE6688128_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE6688128_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE6688128_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE6688128_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6688128_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE6688128_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE6688128_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece6688128/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece6688128/sse/vec128_mul_asm.S deleted file mode 100644 index 68140db4..00000000 --- a/crypto_kem/mceliece/mceliece6688128/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6688128_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE6688128_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE6688128_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE6688128_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6688128_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128/vec/api.h b/crypto_kem/mceliece/mceliece6688128/vec/api.h deleted file mode 100644 index adf2ccdf..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_API_H -#define PQCLEAN_MCELIECE6688128_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE6688128_VEC_CRYPTO_ALGNAME "Classic McEliece 6688128" -#define PQCLEAN_MCELIECE6688128_VEC_CRYPTO_PUBLICKEYBYTES 1044992 -#define PQCLEAN_MCELIECE6688128_VEC_CRYPTO_SECRETKEYBYTES 13892 -#define PQCLEAN_MCELIECE6688128_VEC_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE6688128_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6688128_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6688128_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6688128_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/benes.c b/crypto_kem/mceliece/mceliece6688128/vec/benes.c deleted file mode 100644 index 69bde6c7..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6688128_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/benes.h b/crypto_kem/mceliece/mceliece6688128/vec/benes.h deleted file mode 100644 index 943fa463..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_BENES_H -#define PQCLEAN_MCELIECE6688128_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE6688128_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/bm.c b/crypto_kem/mceliece/mceliece6688128/vec/bm.c deleted file mode 100644 index 540889da..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/bm.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE6688128_VEC_bm(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - vec v[GFBITS]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = 0; - B[0][0] = 0; - B[1][0] = one << 63; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(prod[1], C[1], interval[1]); - update(interval, coefs[N]); - d = vec_reduce(prod); - - t = PQCLEAN_MCELIECE6688128_VEC_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE6688128_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE6688128_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - c0 = (gf)(t >> 32); - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE6688128_VEC_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - v[i] = PQCLEAN_MCELIECE6688128_VEC_vec_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_mul(out[0], C[0], v); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(out[1], C[1], v); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/bm.h b/crypto_kem/mceliece/mceliece6688128/vec/bm.h deleted file mode 100644 index f19ce901..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_BM_H -#define PQCLEAN_MCELIECE6688128_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6688128_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/consts.inc b/crypto_kem/mceliece/mceliece6688128/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece6688128/vec/controlbits.c b/crypto_kem/mceliece/mceliece6688128/vec/controlbits.c deleted file mode 100644 index 039cf2e8..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6688128_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6688128_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6688128_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6688128_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/controlbits.h b/crypto_kem/mceliece/mceliece6688128/vec/controlbits.h deleted file mode 100644 index 6cea6671..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE6688128_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6688128_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6688128_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece6688128/vec/crypto_hash.h deleted file mode 100644 index 3d284110..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6688128_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128/vec/decrypt.c b/crypto_kem/mceliece/mceliece6688128/vec/decrypt.c deleted file mode 100644 index c675d433..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/decrypt.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6688128_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6688128_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 128; i++) { - recv[i] = PQCLEAN_MCELIECE6688128_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6688128_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static int weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6688128_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6688128_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6688128_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6688128_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6688128_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE6688128_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6688128_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE6688128_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6688128_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6688128_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = (uint16_t)weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/decrypt.h b/crypto_kem/mceliece/mceliece6688128/vec/decrypt.h deleted file mode 100644 index 8b7a202c..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE6688128_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6688128_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/encrypt.c b/crypto_kem/mceliece/mceliece6688128/vec/encrypt.c deleted file mode 100644 index 9309b952..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/encrypt.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint8_t *ind8 = (uint8_t *)ind; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6688128_VEC_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE6688128_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE6688128_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= PQCLEAN_MCELIECE6688128_VEC_load4(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE6688128_VEC_load4(e_ptr8 + 8 * j); - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6688128_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/encrypt.h b/crypto_kem/mceliece/mceliece6688128/vec/encrypt.h deleted file mode 100644 index 44aa40ca..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE6688128_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6688128_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/fft.c b/crypto_kem/mceliece/mceliece6688128/vec/fft.c deleted file mode 100644 index 294f5801..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/fft.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec powers[ 128 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE6688128_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // adding the part contributed by x^128 - - for (i = 0; i < 128; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6688128_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} diff --git a/crypto_kem/mceliece/mceliece6688128/vec/fft.h b/crypto_kem/mceliece/mceliece6688128/vec/fft.h deleted file mode 100644 index 0b6e15ab..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_FFT_H -#define PQCLEAN_MCELIECE6688128_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6688128_VEC_fft(vec out[][ GFBITS ], vec in[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/fft_tr.c b/crypto_kem/mceliece/mceliece6688128/vec/fft_tr.c deleted file mode 100644 index 47d03ef8..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/fft_tr.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6688128_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE6688128_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE6688128_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE6688128_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -void PQCLEAN_MCELIECE6688128_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/fft_tr.h b/crypto_kem/mceliece/mceliece6688128/vec/fft_tr.h deleted file mode 100644 index 670981a9..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE6688128_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6688128_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/gf.c b/crypto_kem/mceliece/mceliece6688128/vec/gf.c deleted file mode 100644 index 2297ae41..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* field multiplication */ -gf PQCLEAN_MCELIECE6688128_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE6688128_VEC_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6688128_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6688128_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE6688128_VEC_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6688128_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6688128_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6688128_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE6688128_VEC_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE6688128_VEC_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE6688128_VEC_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/gf.h b/crypto_kem/mceliece/mceliece6688128/vec/gf.h deleted file mode 100644 index 30fa4572..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_GF_H -#define PQCLEAN_MCELIECE6688128_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6688128_VEC_gf_iszero(gf a); -gf PQCLEAN_MCELIECE6688128_VEC_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE6688128_VEC_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE6688128_VEC_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE6688128_VEC_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE6688128_VEC_gf_inv(gf in); - -void PQCLEAN_MCELIECE6688128_VEC_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/operations.c b/crypto_kem/mceliece/mceliece6688128/vec/operations.c deleted file mode 100644 index af2e6102..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6688128_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6688128_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6688128_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6688128_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6688128_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6688128_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6688128_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6688128_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6688128_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6688128_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6688128_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/params.h b/crypto_kem/mceliece/mceliece6688128/vec/params.h deleted file mode 100644 index b8d8b8af..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_PARAMS_H -#define PQCLEAN_MCELIECE6688128_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6688 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/pk_gen.c b/crypto_kem/mceliece/mceliece6688128/vec/pk_gen.c deleted file mode 100644 index 7d5c0971..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/pk_gen.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -int PQCLEAN_MCELIECE6688128_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - const int block_idx = NBLOCKS_I; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 128 ]; - - // compute the inverses - - PQCLEAN_MCELIECE6688128_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE6688128_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6688128_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE6688128_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - for (row = 0; row < PK_NROWS; row++) { - for (k = 0; k < NBLOCKS_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS_H - 1; k++) { - PQCLEAN_MCELIECE6688128_VEC_store8(pk, one_row[k]); - pk += 8; - } - - PQCLEAN_MCELIECE6688128_VEC_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/pk_gen.h b/crypto_kem/mceliece/mceliece6688128/vec/pk_gen.h deleted file mode 100644 index ee930895..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE6688128_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include - -int PQCLEAN_MCELIECE6688128_VEC_pk_gen(uint8_t * /*pk*/, uint32_t * /*perm*/, const uint8_t * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/powers.inc b/crypto_kem/mceliece/mceliece6688128/vec/powers.inc deleted file mode 100644 index a9bd6179..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/powers.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -} diff --git a/crypto_kem/mceliece/mceliece6688128/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece6688128/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece6688128/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece6688128/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece6688128/vec/sk_gen.c b/crypto_kem/mceliece/mceliece6688128/vec/sk_gen.c deleted file mode 100644 index 67448ae2..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6688128_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6688128_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6688128_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6688128_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6688128_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6688128_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6688128_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6688128_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/sk_gen.h b/crypto_kem/mceliece/mceliece6688128/vec/sk_gen.h deleted file mode 100644 index 95bdeb71..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE6688128_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6688128_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6688128_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/transpose.c b/crypto_kem/mceliece/mceliece6688128/vec/transpose.c deleted file mode 100644 index 1afd25c1..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece6688128/vec/transpose.h b/crypto_kem/mceliece/mceliece6688128/vec/transpose.h deleted file mode 100644 index 3c080f1b..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE6688128_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE6688128_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/util.c b/crypto_kem/mceliece/mceliece6688128/vec/util.c deleted file mode 100644 index d1104b92..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/util.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - This file is for loading/storing data in a little-endian fashion -*/ -#include "util.h" - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6688128_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6688128_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6688128_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6688128_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6688128_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6688128_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[0][i] = v[0]; - out[1][i] = v[1]; - } -} - -void PQCLEAN_MCELIECE6688128_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6688128_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece6688128/vec/util.h b/crypto_kem/mceliece/mceliece6688128/vec/util.h deleted file mode 100644 index 5e93e09f..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/util.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_UTIL_H -#define PQCLEAN_MCELIECE6688128_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6688128_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE6688128_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE6688128_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE6688128_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE6688128_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE6688128_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE6688128_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/vec.c b/crypto_kem/mceliece/mceliece6688128/vec/vec.c deleted file mode 100644 index 085f8789..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/vec.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE6688128_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE6688128_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE6688128_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE6688128_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return ((int)a & 1) ^ 1; -} - - -void PQCLEAN_MCELIECE6688128_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6688128_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6688128_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6688128_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6688128_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6688128/vec/vec.h b/crypto_kem/mceliece/mceliece6688128/vec/vec.h deleted file mode 100644 index 4c16b84c..00000000 --- a/crypto_kem/mceliece/mceliece6688128/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128_VEC_VEC_H -#define PQCLEAN_MCELIECE6688128_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE6688128_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE6688128_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE6688128_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE6688128_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE6688128_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE6688128_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE6688128_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE6688128_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/LICENSE b/crypto_kem/mceliece/mceliece6688128f/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/LICENSE b/crypto_kem/mceliece/mceliece6688128f/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece6688128f/clean/Makefile.Microsoft_nmake deleted file mode 100644 index b8bbe6e3..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece6688128f_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/LICENSE b/crypto_kem/mceliece/mceliece6688128f/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.c deleted file mode 100644 index 7ffac2bf..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE6688128F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.h deleted file mode 100644 index ae9b48f8..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE6688128F_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6688128F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/api.h b/crypto_kem/mceliece/mceliece6688128f/sse/api.h deleted file mode 100644 index 3a371b1d..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_API_H -#define PQCLEAN_MCELIECE6688128F_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_ALGNAME "Classic McEliece 6688128" -#define PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_PUBLICKEYBYTES 1044992 -#define PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_SECRETKEYBYTES 13892 -#define PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6688128F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6688128F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6688128F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/benes.c b/crypto_kem/mceliece/mceliece6688128f/sse/benes.c deleted file mode 100644 index e53d48c0..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE6688128F_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(PQCLEAN_MCELIECE6688128F_SSE_load8(ptr), PQCLEAN_MCELIECE6688128F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE6688128F_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(PQCLEAN_MCELIECE6688128F_SSE_load8(ptr), PQCLEAN_MCELIECE6688128F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6688128F_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/benes.h b/crypto_kem/mceliece/mceliece6688128f/sse/benes.h deleted file mode 100644 index 5678c828..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_BENES_H -#define PQCLEAN_MCELIECE6688128F_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE6688128F_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE6688128F_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/bm.c b/crypto_kem/mceliece/mceliece6688128f/sse/bm.c deleted file mode 100644 index 3eb1acc2..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/bm.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE6688128F_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE6688128F_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE6688128F_SSE_vec128_or(PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE6688128F_SSE_vec128_or(PQCLEAN_MCELIECE6688128F_SSE_vec128_srl_2x(PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE6688128F_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setzero(); - B[0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0, one << 63); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setzero(); - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(prod, C, (vec128 *) interval); - PQCLEAN_MCELIECE6688128F_SSE_update_asm(interval, coefs[N]); - d = PQCLEAN_MCELIECE6688128F_SSE_vec_reduce_asm(prod); - - t = PQCLEAN_MCELIECE6688128F_SSE_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE6688128F_SSE_update_asm(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - c0 = t >> 32; - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE6688128F_SSE_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(out, out, C); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/bm.h b/crypto_kem/mceliece/mceliece6688128f/sse/bm.h deleted file mode 100644 index c4b842ba..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_BM_H -#define PQCLEAN_MCELIECE6688128F_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6688128F_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/consts.S b/crypto_kem/mceliece/mceliece6688128f/sse/consts.S deleted file mode 100644 index 2ef828d3..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE6688128F_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE6688128F_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE6688128F_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE6688128F_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE6688128F_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE6688128F_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE6688128F_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE6688128F_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE6688128F_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE6688128F_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE6688128F_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE6688128F_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE6688128F_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/consts.inc b/crypto_kem/mceliece/mceliece6688128f/sse/consts.inc deleted file mode 100644 index 5bf8f200..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/controlbits.c b/crypto_kem/mceliece/mceliece6688128f/sse/controlbits.c deleted file mode 100644 index 545e231f..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6688128F_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6688128F_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6688128F_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6688128F_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/controlbits.h b/crypto_kem/mceliece/mceliece6688128f/sse/controlbits.h deleted file mode 100644 index 223a66f1..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE6688128F_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6688128F_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6688128F_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece6688128f/sse/crypto_hash.h deleted file mode 100644 index eff22ccb..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6688128F_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/decrypt.c b/crypto_kem/mceliece/mceliece6688128f/sse/decrypt.c deleted file mode 100644 index 3b081429..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/decrypt.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6688128F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128F_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE6688128F_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 64; i++) { - v[0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE6688128F_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE6688128F_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 64; i++) { - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u64( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_or(PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE6688128F_SSE_vec128_or(diff, PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6688128F_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6688128F_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6688128F_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE6688128F_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6688128F_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6688128F_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE6688128F_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6688128F_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6688128F_SSE_benes(error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/decrypt.h b/crypto_kem/mceliece/mceliece6688128f/sse/decrypt.h deleted file mode 100644 index 372832d5..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE6688128F_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6688128F_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/encrypt.c b/crypto_kem/mceliece/mceliece6688128f/sse/encrypt.c deleted file mode 100644 index 482379c2..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/encrypt.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE6688128F_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind, sizeof(ind)); - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6688128F_SSE_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6688128F_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - - PQCLEAN_MCELIECE6688128F_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/encrypt.h b/crypto_kem/mceliece/mceliece6688128f/sse/encrypt.h deleted file mode 100644 index 184d51cf..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE6688128F_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6688128F_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/fft.c b/crypto_kem/mceliece/mceliece6688128f/sse/fft.c deleted file mode 100644 index 057f9b25..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/fft.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec128 powers[ 64 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } - - // adding the part contributed by x^128 - - for (i = 0; i < 64; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(out[i][b], powers[i][b]); - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6688128F_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/fft.h b/crypto_kem/mceliece/mceliece6688128f/sse/fft.h deleted file mode 100644 index 6303b50e..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_FFT_H -#define PQCLEAN_MCELIECE6688128F_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE6688128F_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.c b/crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.c deleted file mode 100644 index b2116d39..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6688128F_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6688128F_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -void PQCLEAN_MCELIECE6688128F_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.h b/crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.h deleted file mode 100644 index 02d8ece9..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE6688128F_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6688128F_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/gf.c b/crypto_kem/mceliece/mceliece6688128f/sse/gf.c deleted file mode 100644 index a2fa98ce..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* field multiplication */ -gf PQCLEAN_MCELIECE6688128F_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE6688128F_SSE_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6688128F_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6688128F_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE6688128F_SSE_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6688128F_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6688128F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6688128F_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE6688128F_SSE_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE6688128F_SSE_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE6688128F_SSE_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/gf.h b/crypto_kem/mceliece/mceliece6688128f/sse/gf.h deleted file mode 100644 index 758ab8bb..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/gf.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_GF_H -#define PQCLEAN_MCELIECE6688128F_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6688128F_SSE_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE6688128F_SSE_gf_mul(gf /*in0*/, gf /*in1*/); -uint64_t PQCLEAN_MCELIECE6688128F_SSE_gf_mul2(gf /*a*/, gf /*b0*/, gf /*b1*/); -gf PQCLEAN_MCELIECE6688128F_SSE_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE6688128F_SSE_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE6688128F_SSE_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/operations.c b/crypto_kem/mceliece/mceliece6688128f/sse/operations.c deleted file mode 100644 index 699cab20..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6688128F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6688128F_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6688128F_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6688128F_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6688128F_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6688128F_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6688128F_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6688128F_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6688128F_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6688128F_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6688128F_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/params.h b/crypto_kem/mceliece/mceliece6688128f/sse/params.h deleted file mode 100644 index 7501664e..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_PARAMS_H -#define PQCLEAN_MCELIECE6688128F_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6688 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.c b/crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.c deleted file mode 100644 index 61067e44..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.c +++ /dev/null @@ -1,346 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -static void transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - return (int)_tzcnt_u64(in); -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 127) / 128) * 2 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask(k, ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask(k, ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS1_I ((GFBITS * SYS_T + 63) / 64) -int PQCLEAN_MCELIECE6688128F_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[64][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE6688128F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128F_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6688128F_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = NBLOCKS1_I; j < NBLOCKS1_H - 1; j++) { - PQCLEAN_MCELIECE6688128F_SSE_store8(pk, mat[i][j]); - pk += 8; - } - - PQCLEAN_MCELIECE6688128F_SSE_store_i(pk, mat[i][j], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.h b/crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.h deleted file mode 100644 index 24eaa11d..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE6688128F_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE6688128F_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/powers.inc b/crypto_kem/mceliece/mceliece6688128f/sse/powers.inc deleted file mode 100644 index da05dcc8..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/powers.inc +++ /dev/null @@ -1,960 +0,0 @@ -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -} diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece6688128f/sse/scalars_2x.inc deleted file mode 100644 index db1572c7..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece6688128f/sse/scalars_4x.inc deleted file mode 100644 index 363ea011..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.c b/crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.c deleted file mode 100644 index 2800eb1c..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6688128F_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6688128F_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6688128F_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6688128F_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6688128F_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6688128F_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6688128F_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6688128F_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.h b/crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.h deleted file mode 100644 index 3654c020..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE6688128F_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6688128F_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6688128F_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece6688128f/sse/syndrome_asm.S deleted file mode 100644 index 31cd52f2..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/syndrome_asm.S +++ /dev/null @@ -1,1260 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6688128F_SSE_syndrome_asm -.global PQCLEAN_MCELIECE6688128F_SSE_syndrome_asm -_PQCLEAN_MCELIECE6688128F_SSE_syndrome_asm: -PQCLEAN_MCELIECE6688128F_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 1044364 -# asm 1: add $1044364,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1664 -# asm 1: mov $1664,>row=int64#5 -# asm 2: mov $1664,>row=%r8 -mov $1664,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(ee=reg128#2 -# asm 2: movdqu 208(ee=%xmm1 -movdqu 208(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(ee=reg128#3 -# asm 2: movdqu 224(ee=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(ee=reg128#3 -# asm 2: movdqu 240(ee=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(ee=reg128#3 -# asm 2: movdqu 256(ee=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(ee=reg128#3 -# asm 2: movdqu 272(ee=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(ee=reg128#3 -# asm 2: movdqu 288(ee=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(ee=reg128#3 -# asm 2: movdqu 304(ee=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(ee=reg128#3 -# asm 2: movdqu 320(ee=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(ee=reg128#3 -# asm 2: movdqu 336(ee=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(ee=reg128#3 -# asm 2: movdqu 352(ee=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(ee=reg128#3 -# asm 2: movdqu 368(ee=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(ee=reg128#3 -# asm 2: movdqu 384(ee=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(ee=reg128#3 -# asm 2: movdqu 400(ee=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(ee=reg128#3 -# asm 2: movdqu 416(ee=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 432 ] -# asm 1: movdqu 432(ee=reg128#3 -# asm 2: movdqu 432(ee=%xmm2 -movdqu 432(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 448 ] -# asm 1: movdqu 448(ee=reg128#3 -# asm 2: movdqu 448(ee=%xmm2 -movdqu 448(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 464 ] -# asm 1: movdqu 464(ee=reg128#3 -# asm 2: movdqu 464(ee=%xmm2 -movdqu 464(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 480 ] -# asm 1: movdqu 480(ee=reg128#3 -# asm 2: movdqu 480(ee=%xmm2 -movdqu 480(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 496 ] -# asm 1: movdqu 496(ee=reg128#3 -# asm 2: movdqu 496(ee=%xmm2 -movdqu 496(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 512 ] -# asm 1: movdqu 512(ee=reg128#3 -# asm 2: movdqu 512(ee=%xmm2 -movdqu 512(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 528 ] -# asm 1: movdqu 528(ee=reg128#3 -# asm 2: movdqu 528(ee=%xmm2 -movdqu 528(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 336(pp=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 544 ] -# asm 1: movdqu 544(ee=reg128#3 -# asm 2: movdqu 544(ee=%xmm2 -movdqu 544(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 352(pp=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 560 ] -# asm 1: movdqu 560(ee=reg128#3 -# asm 2: movdqu 560(ee=%xmm2 -movdqu 560(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 368(pp=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 576 ] -# asm 1: movdqu 576(ee=reg128#3 -# asm 2: movdqu 576(ee=%xmm2 -movdqu 576(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 384(pp=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 592 ] -# asm 1: movdqu 592(ee=reg128#3 -# asm 2: movdqu 592(ee=%xmm2 -movdqu 592(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 400(pp=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 608 ] -# asm 1: movdqu 608(ee=reg128#3 -# asm 2: movdqu 608(ee=%xmm2 -movdqu 608(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 416(pp=%xmm1 -movdqu 416(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 624 ] -# asm 1: movdqu 624(ee=reg128#3 -# asm 2: movdqu 624(ee=%xmm2 -movdqu 624(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 432(pp=%xmm1 -movdqu 432(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 640 ] -# asm 1: movdqu 640(ee=reg128#3 -# asm 2: movdqu 640(ee=%xmm2 -movdqu 640(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 448(pp=%xmm1 -movdqu 448(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 656 ] -# asm 1: movdqu 656(ee=reg128#3 -# asm 2: movdqu 656(ee=%xmm2 -movdqu 656(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 464(pp=%xmm1 -movdqu 464(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 672 ] -# asm 1: movdqu 672(ee=reg128#3 -# asm 2: movdqu 672(ee=%xmm2 -movdqu 672(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 480(pp=%xmm1 -movdqu 480(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 688 ] -# asm 1: movdqu 688(ee=reg128#3 -# asm 2: movdqu 688(ee=%xmm2 -movdqu 688(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 496(pp=%xmm1 -movdqu 496(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 704 ] -# asm 1: movdqu 704(ee=reg128#3 -# asm 2: movdqu 704(ee=%xmm2 -movdqu 704(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 512(pp=%xmm1 -movdqu 512(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 720 ] -# asm 1: movdqu 720(ee=reg128#3 -# asm 2: movdqu 720(ee=%xmm2 -movdqu 720(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 528(pp=%xmm1 -movdqu 528(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 736 ] -# asm 1: movdqu 736(ee=reg128#3 -# asm 2: movdqu 736(ee=%xmm2 -movdqu 736(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 544(pp=%xmm1 -movdqu 544(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 752 ] -# asm 1: movdqu 752(ee=reg128#3 -# asm 2: movdqu 752(ee=%xmm2 -movdqu 752(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 560(pp=%xmm1 -movdqu 560(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 768 ] -# asm 1: movdqu 768(ee=reg128#3 -# asm 2: movdqu 768(ee=%xmm2 -movdqu 768(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 576(pp=%xmm1 -movdqu 576(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 784 ] -# asm 1: movdqu 784(ee=reg128#3 -# asm 2: movdqu 784(ee=%xmm2 -movdqu 784(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 592(pp=%xmm1 -movdqu 592(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 800 ] -# asm 1: movdqu 800(ee=reg128#3 -# asm 2: movdqu 800(ee=%xmm2 -movdqu 800(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = mem64[input_1 + 608] -# asm 1: movq 608(s=int64#6 -# asm 2: movq 608(s=%r9 -movq 608(%rsi),%r9 - -# qhasm: e = mem64[input_2 + 816] -# asm 1: movq 816(e=int64#7 -# asm 2: movq 816(e=%rax -movq 816(%rdx),%rax - -# qhasm: s &= e -# asm 1: and p=int64#7 -# asm 2: movq 616(p=%rax -movq 616(%rsi),%rax - -# qhasm: e = mem64[input_2 + 824] -# asm 1: movq 824(e=int64#8 -# asm 2: movq 824(e=%r10 -movq 824(%rdx),%r10 - -# qhasm: p &= e -# asm 1: and p=int64#7d -# asm 2: movl 624(p=%eax -movl 624(%rsi),%eax - -# qhasm: e = *(uint32 *)(input_2 + 832) -# asm 1: movl 832(e=int64#8d -# asm 2: movl 832(e=%r10d -movl 832(%rdx),%r10d - -# qhasm: p &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 16(ss=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#2 -# asm 2: movdqu 16(ee=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 32(ss=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#2 -# asm 2: movdqu 32(ee=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 48(ss=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#2 -# asm 2: movdqu 48(ee=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 64(ss=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#2 -# asm 2: movdqu 64(ee=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 80(ss=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#2 -# asm 2: movdqu 80(ee=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 96(ss=%xmm0 -movdqu 96(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#2 -# asm 2: movdqu 96(ee=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 112(ss=%xmm0 -movdqu 112(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#2 -# asm 2: movdqu 112(ee=%xmm1 -movdqu 112(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 128(ss=%xmm0 -movdqu 128(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(ee=reg128#2 -# asm 2: movdqu 128(ee=%xmm1 -movdqu 128(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 144(ss=%xmm0 -movdqu 144(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(ee=reg128#2 -# asm 2: movdqu 144(ee=%xmm1 -movdqu 144(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 160(ss=%xmm0 -movdqu 160(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(ee=reg128#2 -# asm 2: movdqu 160(ee=%xmm1 -movdqu 160(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 176(ss=%xmm0 -movdqu 176(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(ee=reg128#2 -# asm 2: movdqu 176(ee=%xmm1 -movdqu 176(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor ss=reg128#1 -# asm 2: movdqu 192(ss=%xmm0 -movdqu 192(%rdi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(ee=reg128#2 -# asm 2: movdqu 192(ee=%xmm1 -movdqu 192(%rdx),%xmm1 - -# qhasm: ss ^= ee -# asm 1: pxor mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6688128F_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6688128F_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE6688128F_SSE_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6688128F_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6688128F_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6688128F_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6688128F_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6688128F_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE6688128F_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6688128F_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x( PQCLEAN_MCELIECE6688128F_SSE_load8(in), PQCLEAN_MCELIECE6688128F_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE6688128F_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE6688128F_SSE_store8(out + 0, PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE6688128F_SSE_store8(out + 8, PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/util.h b/crypto_kem/mceliece/mceliece6688128f/sse/util.h deleted file mode 100644 index 35047efd..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_UTIL_H -#define PQCLEAN_MCELIECE6688128F_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE6688128F_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE6688128F_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE6688128F_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE6688128F_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE6688128F_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE6688128F_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE6688128F_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE6688128F_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE6688128F_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/vec128.c b/crypto_kem/mceliece/mceliece6688128f/sse/vec128.c deleted file mode 100644 index f74a1bb0..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE6688128F_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE6688128F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE6688128F_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6688128F_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/vec128.h b/crypto_kem/mceliece/mceliece6688128f/sse/vec128.h deleted file mode 100644 index a7ab8ebc..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_SSE_VEC128_H -#define PQCLEAN_MCELIECE6688128F_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE6688128F_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE6688128F_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE6688128F_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE6688128F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE6688128F_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE6688128F_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6688128F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE6688128F_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE6688128F_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece6688128f/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece6688128f/sse/vec128_mul_asm.S deleted file mode 100644 index 383ebb27..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6688128F_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE6688128F_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE6688128F_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE6688128F_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6688128F_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/api.h b/crypto_kem/mceliece/mceliece6688128f/vec/api.h deleted file mode 100644 index cd45ca3a..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_API_H -#define PQCLEAN_MCELIECE6688128F_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_ALGNAME "Classic McEliece 6688128" -#define PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_PUBLICKEYBYTES 1044992 -#define PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_SECRETKEYBYTES 13892 -#define PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6688128F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6688128F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6688128F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/benes.c b/crypto_kem/mceliece/mceliece6688128f/vec/benes.c deleted file mode 100644 index 253ca15a..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6688128F_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6688128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/benes.h b/crypto_kem/mceliece/mceliece6688128f/vec/benes.h deleted file mode 100644 index 1dec9ca7..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_BENES_H -#define PQCLEAN_MCELIECE6688128F_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE6688128F_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/bm.c b/crypto_kem/mceliece/mceliece6688128f/vec/bm.c deleted file mode 100644 index 4851a45d..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/bm.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE6688128F_VEC_bm(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - vec v[GFBITS]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = 0; - B[0][0] = 0; - B[1][0] = one << 63; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(prod[1], C[1], interval[1]); - update(interval, coefs[N]); - d = vec_reduce(prod); - - t = PQCLEAN_MCELIECE6688128F_VEC_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE6688128F_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE6688128F_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - c0 = (gf)(t >> 32); - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE6688128F_VEC_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - v[i] = PQCLEAN_MCELIECE6688128F_VEC_vec_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(out[0], C[0], v); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(out[1], C[1], v); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/bm.h b/crypto_kem/mceliece/mceliece6688128f/vec/bm.h deleted file mode 100644 index 98892eba..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_BM_H -#define PQCLEAN_MCELIECE6688128F_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6688128F_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/consts.inc b/crypto_kem/mceliece/mceliece6688128f/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/controlbits.c b/crypto_kem/mceliece/mceliece6688128f/vec/controlbits.c deleted file mode 100644 index 98730f50..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6688128F_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6688128F_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6688128F_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6688128F_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/controlbits.h b/crypto_kem/mceliece/mceliece6688128f/vec/controlbits.h deleted file mode 100644 index da59ceda..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE6688128F_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6688128F_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6688128F_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece6688128f/vec/crypto_hash.h deleted file mode 100644 index 1d014c42..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6688128F_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/decrypt.c b/crypto_kem/mceliece/mceliece6688128f/vec/decrypt.c deleted file mode 100644 index 6d1368cd..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/decrypt.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6688128F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128F_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 128; i++) { - recv[i] = PQCLEAN_MCELIECE6688128F_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6688128F_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static int weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6688128F_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6688128F_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6688128F_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6688128F_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6688128F_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE6688128F_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6688128F_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE6688128F_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6688128F_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6688128F_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = (uint16_t)weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/decrypt.h b/crypto_kem/mceliece/mceliece6688128f/vec/decrypt.h deleted file mode 100644 index bcac4a59..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE6688128F_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6688128F_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/encrypt.c b/crypto_kem/mceliece/mceliece6688128f/vec/encrypt.c deleted file mode 100644 index 1bb530e9..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/encrypt.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint8_t *ind8 = (uint8_t *)ind; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6688128F_VEC_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE6688128F_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE6688128F_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= PQCLEAN_MCELIECE6688128F_VEC_load4(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE6688128F_VEC_load4(e_ptr8 + 8 * j); - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6688128F_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/encrypt.h b/crypto_kem/mceliece/mceliece6688128f/vec/encrypt.h deleted file mode 100644 index 20f8b723..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE6688128F_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6688128F_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/fft.c b/crypto_kem/mceliece/mceliece6688128f/vec/fft.c deleted file mode 100644 index 320663d7..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/fft.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec powers[ 128 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // adding the part contributed by x^128 - - for (i = 0; i < 128; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6688128F_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/fft.h b/crypto_kem/mceliece/mceliece6688128f/vec/fft.h deleted file mode 100644 index f61c0135..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_FFT_H -#define PQCLEAN_MCELIECE6688128F_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6688128F_VEC_fft(vec out[][ GFBITS ], vec in[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.c b/crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.c deleted file mode 100644 index 3565cb9f..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128F_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6688128F_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -void PQCLEAN_MCELIECE6688128F_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.h b/crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.h deleted file mode 100644 index 374fe29e..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE6688128F_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6688128F_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/gf.c b/crypto_kem/mceliece/mceliece6688128f/vec/gf.c deleted file mode 100644 index 7f7470ac..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* field multiplication */ -gf PQCLEAN_MCELIECE6688128F_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE6688128F_VEC_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6688128F_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6688128F_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE6688128F_VEC_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6688128F_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6688128F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6688128F_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE6688128F_VEC_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE6688128F_VEC_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE6688128F_VEC_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/gf.h b/crypto_kem/mceliece/mceliece6688128f/vec/gf.h deleted file mode 100644 index 02504ef5..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_GF_H -#define PQCLEAN_MCELIECE6688128F_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6688128F_VEC_gf_iszero(gf a); -gf PQCLEAN_MCELIECE6688128F_VEC_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE6688128F_VEC_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE6688128F_VEC_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE6688128F_VEC_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE6688128F_VEC_gf_inv(gf in); - -void PQCLEAN_MCELIECE6688128F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/operations.c b/crypto_kem/mceliece/mceliece6688128f/vec/operations.c deleted file mode 100644 index 9db050f5..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6688128F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6688128F_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6688128F_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6688128F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6688128F_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6688128F_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6688128F_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6688128F_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6688128F_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6688128F_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6688128F_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6688128F_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/params.h b/crypto_kem/mceliece/mceliece6688128f/vec/params.h deleted file mode 100644 index 2f5a0c31..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_PARAMS_H -#define PQCLEAN_MCELIECE6688128F_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6688 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.c b/crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.c deleted file mode 100644 index 55880b23..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.c +++ /dev/null @@ -1,304 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - int i, b, m = 0, r = 0; - - for (i = 0; i < 64; i++) { - b = (int)(in >> i) & 1; - m |= b; - r += (m ^ 1) & (b ^ 1); - } - - return r; -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ (SYS_N + 63) / 64 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - -int PQCLEAN_MCELIECE6688128F_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE6688128F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6688128F_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE6688128F_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6688128F_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6688128F_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS_H - 1; j++) { - PQCLEAN_MCELIECE6688128F_VEC_store8(pk, mat[i][j]); - pk += 8; - } - - PQCLEAN_MCELIECE6688128F_VEC_store_i(pk, mat[i][j], PK_ROW_BYTES % 8); - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.h b/crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.h deleted file mode 100644 index 8e9adeda..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/pk_gen.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE6688128F_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - - -#include - -int PQCLEAN_MCELIECE6688128F_VEC_pk_gen(uint8_t * /*pk*/, uint32_t * /*perm*/, const uint8_t * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/powers.inc b/crypto_kem/mceliece/mceliece6688128f/vec/powers.inc deleted file mode 100644 index a9bd6179..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/powers.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -} diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece6688128f/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece6688128f/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.c b/crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.c deleted file mode 100644 index 7282da40..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6688128F_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6688128F_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6688128F_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6688128F_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6688128F_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6688128F_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6688128F_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6688128F_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.h b/crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.h deleted file mode 100644 index c4619041..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE6688128F_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6688128F_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6688128F_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/transpose.c b/crypto_kem/mceliece/mceliece6688128f/vec/transpose.c deleted file mode 100644 index 7c47b796..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/transpose.h b/crypto_kem/mceliece/mceliece6688128f/vec/transpose.h deleted file mode 100644 index 1281455b..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE6688128F_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE6688128F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/util.c b/crypto_kem/mceliece/mceliece6688128f/vec/util.c deleted file mode 100644 index 1525f7bb..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/util.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - This file is for loading/storing data in a little-endian fashion -*/ -#include "util.h" - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6688128F_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6688128F_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6688128F_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6688128F_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6688128F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6688128F_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[0][i] = v[0]; - out[1][i] = v[1]; - } -} - -void PQCLEAN_MCELIECE6688128F_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6688128F_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/util.h b/crypto_kem/mceliece/mceliece6688128f/vec/util.h deleted file mode 100644 index f7f5b4ed..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/util.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_UTIL_H -#define PQCLEAN_MCELIECE6688128F_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6688128F_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE6688128F_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE6688128F_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE6688128F_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE6688128F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE6688128F_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE6688128F_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/vec.c b/crypto_kem/mceliece/mceliece6688128f/vec/vec.c deleted file mode 100644 index 93163263..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/vec.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE6688128F_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE6688128F_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE6688128F_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE6688128F_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return ((int)a & 1) ^ 1; -} - - -void PQCLEAN_MCELIECE6688128F_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6688128F_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6688128F_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6688128F_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6688128F_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6688128F_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6688128f/vec/vec.h b/crypto_kem/mceliece/mceliece6688128f/vec/vec.h deleted file mode 100644 index 1488a437..00000000 --- a/crypto_kem/mceliece/mceliece6688128f/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6688128F_VEC_VEC_H -#define PQCLEAN_MCELIECE6688128F_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE6688128F_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE6688128F_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE6688128F_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE6688128F_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE6688128F_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE6688128F_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE6688128F_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE6688128F_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/avx/LICENSE b/crypto_kem/mceliece/mceliece6960119/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6960119/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6960119/clean/LICENSE b/crypto_kem/mceliece/mceliece6960119/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6960119/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6960119/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece6960119/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 6f1b691d..00000000 --- a/crypto_kem/mceliece/mceliece6960119/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece6960119_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece6960119/sse/LICENSE b/crypto_kem/mceliece/mceliece6960119/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.c deleted file mode 100644 index 542e3799..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE6960119_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.h deleted file mode 100644 index 66f5037e..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE6960119_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6960119_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119/sse/api.h b/crypto_kem/mceliece/mceliece6960119/sse/api.h deleted file mode 100644 index eb17af0a..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_API_H -#define PQCLEAN_MCELIECE6960119_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE6960119_SSE_CRYPTO_ALGNAME "Classic McEliece 6960119" -#define PQCLEAN_MCELIECE6960119_SSE_CRYPTO_PUBLICKEYBYTES 1047319 -#define PQCLEAN_MCELIECE6960119_SSE_CRYPTO_SECRETKEYBYTES 13908 -#define PQCLEAN_MCELIECE6960119_SSE_CRYPTO_CIPHERTEXTBYTES 226 -#define PQCLEAN_MCELIECE6960119_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6960119_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6960119_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6960119_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/benes.c b/crypto_kem/mceliece/mceliece6960119/sse/benes.c deleted file mode 100644 index 855694fb..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE6960119_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE6960119_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(PQCLEAN_MCELIECE6960119_SSE_load8(ptr), PQCLEAN_MCELIECE6960119_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE6960119_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(PQCLEAN_MCELIECE6960119_SSE_load8(ptr), PQCLEAN_MCELIECE6960119_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6960119_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/benes.h b/crypto_kem/mceliece/mceliece6960119/sse/benes.h deleted file mode 100644 index 6b5aa09f..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_BENES_H -#define PQCLEAN_MCELIECE6960119_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE6960119_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE6960119_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/bm.c b/crypto_kem/mceliece/mceliece6960119/sse/bm.c deleted file mode 100644 index 4b64ab8d..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/bm.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE6960119_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE6960119_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE6960119_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE6960119_SSE_vec128_or(PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE6960119_SSE_vec128_or(PQCLEAN_MCELIECE6960119_SSE_vec128_srl_2x(PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE6960119_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE6960119_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE6960119_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - uint64_t v[2]; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0, one << 63); - B[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0, one << 62); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_setzero(); - } - - for (N = 0; N < SYS_T * 2; N++) { - PQCLEAN_MCELIECE6960119_SSE_update_asm(interval, coefs[N]); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(prod, C, (vec128 *) interval); - d = PQCLEAN_MCELIECE6960119_SSE_vec_reduce_asm(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE6960119_SSE_update_asm(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - v[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(C[i], 0); - v[1] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(C[i], 1); - - out[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x((v[0] >> 8) | (v[1] << 56), v[1] >> 8); - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/bm.h b/crypto_kem/mceliece/mceliece6960119/sse/bm.h deleted file mode 100644 index bed133a5..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_BM_H -#define PQCLEAN_MCELIECE6960119_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6960119_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/consts.S b/crypto_kem/mceliece/mceliece6960119/sse/consts.S deleted file mode 100644 index bbf6767c..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE6960119_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE6960119_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE6960119_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE6960119_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE6960119_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE6960119_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE6960119_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE6960119_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE6960119_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE6960119_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE6960119_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE6960119_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE6960119_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE6960119_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/consts.inc b/crypto_kem/mceliece/mceliece6960119/sse/consts.inc deleted file mode 100644 index a839b8a6..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece6960119/sse/controlbits.c b/crypto_kem/mceliece/mceliece6960119/sse/controlbits.c deleted file mode 100644 index 8b47ffd2..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6960119_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6960119_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6960119_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6960119_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/controlbits.h b/crypto_kem/mceliece/mceliece6960119/sse/controlbits.h deleted file mode 100644 index 1217b3d4..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE6960119_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6960119_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6960119_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece6960119/sse/crypto_hash.h deleted file mode 100644 index d8b9eb7d..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6960119_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119/sse/decrypt.c b/crypto_kem/mceliece/mceliece6960119/sse/decrypt.c deleted file mode 100644 index 58ed88dd..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/decrypt.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6960119_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - r[i - 1] &= (1 << ((GFBITS * SYS_T) % 8)) - 1; // throwing away redundant bits - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE6960119_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 64; i++) { - v[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE6960119_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE6960119_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 64; i++) { - w0 += _mm_popcnt_u64(PQCLEAN_MCELIECE6960119_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE6960119_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u32( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_or(PQCLEAN_MCELIECE6960119_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE6960119_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE6960119_SSE_vec128_or(diff, PQCLEAN_MCELIECE6960119_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6960119_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6960119_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6960119_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE6960119_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6960119_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6960119_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE6960119_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6960119_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6960119_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6960119_SSE_benes(error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/decrypt.h b/crypto_kem/mceliece/mceliece6960119/sse/decrypt.h deleted file mode 100644 index 78a7d2b2..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE6960119_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6960119_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/encrypt.c b/crypto_kem/mceliece/mceliece6960119/sse/encrypt.c deleted file mode 100644 index 6d924145..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/encrypt.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE6960119_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind, sizeof(ind)); - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6960119_SSE_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6960119_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - - PQCLEAN_MCELIECE6960119_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/encrypt.h b/crypto_kem/mceliece/mceliece6960119/sse/encrypt.h deleted file mode 100644 index a1122b31..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE6960119_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6960119_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/fft.c b/crypto_kem/mceliece/mceliece6960119/sse/fft.c deleted file mode 100644 index 428d7eeb..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/fft.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE6960119_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE6960119_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE6960119_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6960119_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/fft.h b/crypto_kem/mceliece/mceliece6960119/sse/fft.h deleted file mode 100644 index 79ff5101..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_FFT_H -#define PQCLEAN_MCELIECE6960119_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE6960119_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/fft_tr.c b/crypto_kem/mceliece/mceliece6960119/sse/fft_tr.c deleted file mode 100644 index 5e185806..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/fft_tr.c +++ /dev/null @@ -1,355 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE6960119_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6960119_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6960119_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -/* justifying the length of the output */ -static void postprocess(vec128 out[][GFBITS]) { - int i; - uint64_t v[2]; - - for (i = 0; i < 13; i++) { - v[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(out[1][i], 0); - v[1] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(out[1][i], 1); - - v[1] <<= (128 - SYS_T) * 2; - v[1] >>= (128 - SYS_T) * 2; - - out[1][i] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE6960119_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/fft_tr.h b/crypto_kem/mceliece/mceliece6960119/sse/fft_tr.h deleted file mode 100644 index 44ced9d7..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE6960119_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6960119_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/gf.c b/crypto_kem/mceliece/mceliece6960119/sse/gf.c deleted file mode 100644 index 61bdcdb8..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/gf.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6960119_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE6960119_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6960119_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6960119_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE6960119_SSE_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6960119_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[237]; - - for (i = 0; i < 237; i++) { - prod[i] = 0; - } - - for (i = 0; i < 119; i++) { - for (j = 0; j < 119; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6960119_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 236; i >= 119; i--) { - prod[i - 117] ^= PQCLEAN_MCELIECE6960119_SSE_gf_mul(prod[i], (gf) 6400); - prod[i - 119] ^= PQCLEAN_MCELIECE6960119_SSE_gf_mul(prod[i], (gf) 3134); - } - - for (i = 0; i < 119; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/gf.h b/crypto_kem/mceliece/mceliece6960119/sse/gf.h deleted file mode 100644 index f7eeba37..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_GF_H -#define PQCLEAN_MCELIECE6960119_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6960119_SSE_gf_iszero(gf a); -gf PQCLEAN_MCELIECE6960119_SSE_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE6960119_SSE_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE6960119_SSE_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE6960119_SSE_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE6960119_SSE_gf_inv(gf in); - -void PQCLEAN_MCELIECE6960119_SSE_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/operations.c b/crypto_kem/mceliece/mceliece6960119/sse/operations.c deleted file mode 100644 index 955f9fa3..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6960119_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6960119_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6960119_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6960119_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6960119_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6960119_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6960119_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6960119_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6960119_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6960119_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6960119_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/params.h b/crypto_kem/mceliece/mceliece6960119/sse/params.h deleted file mode 100644 index 8c0b8674..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_PARAMS_H -#define PQCLEAN_MCELIECE6960119_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6960 -#define SYS_T 119 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/pk_gen.c b/crypto_kem/mceliece/mceliece6960119/sse/pk_gen.c deleted file mode 100644 index a211efbc..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/pk_gen.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS1_I ((GFBITS * SYS_T + 63) / 64) -#define NBLOCKS2_I ((GFBITS * SYS_T + 127) / 128) -int PQCLEAN_MCELIECE6960119_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - const int block_idx = NBLOCKS1_I - 1; - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS1_I ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[64][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 128 ]; - - // compute the inverses - - PQCLEAN_MCELIECE6960119_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE6960119_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6960119_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_I; j++) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS1_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - uint64_t column[ PK_NROWS ]; - - for (i = 0; i < PK_NROWS; i++) { - column[i] = mat[ i ][ block_idx ]; - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS2_I; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS2_I; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6960119_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - - for (i = 0; i < PK_NROWS; i++) { - mat[ i ][ block_idx ] = column[i]; - } - - for (row = 0; row < PK_NROWS; row++) { - - for (k = 0; k < NBLOCKS1_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS1_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS1_H - 1; k++) { - one_row[k] = (one_row[k] >> tail) | (one_row[k + 1] << (64 - tail)); - PQCLEAN_MCELIECE6960119_SSE_store8(pk, one_row[k]); - pk += 8; - } - - one_row[k] >>= tail; - PQCLEAN_MCELIECE6960119_SSE_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk[ (PK_ROW_BYTES % 8) - 1 ] &= (1 << (PK_NCOLS % 8)) - 1; // removing redundant bits - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/pk_gen.h b/crypto_kem/mceliece/mceliece6960119/sse/pk_gen.h deleted file mode 100644 index 3bdbaf0b..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE6960119_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE6960119_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece6960119/sse/scalars_2x.inc deleted file mode 100644 index d67fe251..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece6960119/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece6960119/sse/scalars_4x.inc deleted file mode 100644 index 19902479..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/sk_gen.c b/crypto_kem/mceliece/mceliece6960119/sse/sk_gen.c deleted file mode 100644 index 96dc35e3..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6960119_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6960119_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6960119_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6960119_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6960119_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6960119_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6960119_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6960119_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/sk_gen.h b/crypto_kem/mceliece/mceliece6960119/sse/sk_gen.h deleted file mode 100644 index 134954c0..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE6960119_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6960119_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6960119_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece6960119/sse/syndrome_asm.S deleted file mode 100644 index c764108c..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/syndrome_asm.S +++ /dev/null @@ -1,1311 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 b0 - -# qhasm: int64 b1 - -# qhasm: int64 i - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: int64 tmp - -# qhasm: stack64 back - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6960119_SSE_syndrome_asm -.global PQCLEAN_MCELIECE6960119_SSE_syndrome_asm -_PQCLEAN_MCELIECE6960119_SSE_syndrome_asm: -PQCLEAN_MCELIECE6960119_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $64,%r11 -sub %r11,%rsp - -# qhasm: input_2 += 193 -# asm 1: add $193,tmp=int64#4 -# asm 2: movzbq 0(tmp=%rcx -movzbq 0(%rdx),%rcx - -# qhasm: back = tmp -# asm 1: movq back=stack64#1 -# asm 2: movq back=32(%rsp) -movq %rcx,32(%rsp) - -# qhasm: i = 0 -# asm 1: mov $0,>i=int64#4 -# asm 2: mov $0,>i=%rcx -mov $0,%rcx - -# qhasm: inner1: -._inner1: - -# qhasm: addr = input_2 + i -# asm 1: lea (addr=int64#5 -# asm 2: lea (addr=%r8 -lea (%rdx,%rcx),%r8 - -# qhasm: b0 = *(uint8 *) (addr + 0) -# asm 1: movzbq 0(b0=int64#6 -# asm 2: movzbq 0(b0=%r9 -movzbq 0(%r8),%r9 - -# qhasm: b1 = *(uint8 *) (addr + 1) -# asm 1: movzbq 1(b1=int64#7 -# asm 2: movzbq 1(b1=%rax -movzbq 1(%r8),%rax - -# qhasm: (uint64) b0 >>= 3 -# asm 1: shr $3,b0=int64#4 -# asm 2: movzbq 1(b0=%rcx -movzbq 1(%r8),%rcx - -# qhasm: (uint64) b0 >>= 3 -# asm 1: shr $3,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1547 -# asm 1: mov $1547,>row=int64#5 -# asm 2: mov $1547,>row=%r8 -mov $1547,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#3 -# asm 2: movdqu 16(ee=%xmm2 -movdqu 16(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#3 -# asm 2: movdqu 32(ee=%xmm2 -movdqu 32(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#3 -# asm 2: movdqu 48(ee=%xmm2 -movdqu 48(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#3 -# asm 2: movdqu 64(ee=%xmm2 -movdqu 64(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#3 -# asm 2: movdqu 80(ee=%xmm2 -movdqu 80(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#3 -# asm 2: movdqu 96(ee=%xmm2 -movdqu 96(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#3 -# asm 2: movdqu 112(ee=%xmm2 -movdqu 112(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(ee=reg128#3 -# asm 2: movdqu 128(ee=%xmm2 -movdqu 128(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(ee=reg128#3 -# asm 2: movdqu 144(ee=%xmm2 -movdqu 144(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(ee=reg128#3 -# asm 2: movdqu 160(ee=%xmm2 -movdqu 160(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(ee=reg128#3 -# asm 2: movdqu 176(ee=%xmm2 -movdqu 176(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(ee=reg128#3 -# asm 2: movdqu 192(ee=%xmm2 -movdqu 192(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(ee=reg128#3 -# asm 2: movdqu 208(ee=%xmm2 -movdqu 208(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(ee=reg128#3 -# asm 2: movdqu 224(ee=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(ee=reg128#3 -# asm 2: movdqu 240(ee=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(ee=reg128#3 -# asm 2: movdqu 256(ee=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(ee=reg128#3 -# asm 2: movdqu 272(ee=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(ee=reg128#3 -# asm 2: movdqu 288(ee=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(ee=reg128#3 -# asm 2: movdqu 304(ee=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(ee=reg128#3 -# asm 2: movdqu 320(ee=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 336(pp=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(ee=reg128#3 -# asm 2: movdqu 336(ee=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 352(pp=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(ee=reg128#3 -# asm 2: movdqu 352(ee=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 368(pp=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(ee=reg128#3 -# asm 2: movdqu 368(ee=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 384(pp=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(ee=reg128#3 -# asm 2: movdqu 384(ee=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 400(pp=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(ee=reg128#3 -# asm 2: movdqu 400(ee=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 416(pp=%xmm1 -movdqu 416(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(ee=reg128#3 -# asm 2: movdqu 416(ee=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 432(pp=%xmm1 -movdqu 432(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 432 ] -# asm 1: movdqu 432(ee=reg128#3 -# asm 2: movdqu 432(ee=%xmm2 -movdqu 432(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 448(pp=%xmm1 -movdqu 448(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 448 ] -# asm 1: movdqu 448(ee=reg128#3 -# asm 2: movdqu 448(ee=%xmm2 -movdqu 448(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 464(pp=%xmm1 -movdqu 464(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 464 ] -# asm 1: movdqu 464(ee=reg128#3 -# asm 2: movdqu 464(ee=%xmm2 -movdqu 464(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 480(pp=%xmm1 -movdqu 480(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 480 ] -# asm 1: movdqu 480(ee=reg128#3 -# asm 2: movdqu 480(ee=%xmm2 -movdqu 480(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 496(pp=%xmm1 -movdqu 496(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 496 ] -# asm 1: movdqu 496(ee=reg128#3 -# asm 2: movdqu 496(ee=%xmm2 -movdqu 496(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 512(pp=%xmm1 -movdqu 512(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 512 ] -# asm 1: movdqu 512(ee=reg128#3 -# asm 2: movdqu 512(ee=%xmm2 -movdqu 512(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 528(pp=%xmm1 -movdqu 528(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 528 ] -# asm 1: movdqu 528(ee=reg128#3 -# asm 2: movdqu 528(ee=%xmm2 -movdqu 528(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 544(pp=%xmm1 -movdqu 544(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 544 ] -# asm 1: movdqu 544(ee=reg128#3 -# asm 2: movdqu 544(ee=%xmm2 -movdqu 544(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 560(pp=%xmm1 -movdqu 560(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 560 ] -# asm 1: movdqu 560(ee=reg128#3 -# asm 2: movdqu 560(ee=%xmm2 -movdqu 560(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 576(pp=%xmm1 -movdqu 576(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 576 ] -# asm 1: movdqu 576(ee=reg128#3 -# asm 2: movdqu 576(ee=%xmm2 -movdqu 576(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 592(pp=%xmm1 -movdqu 592(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 592 ] -# asm 1: movdqu 592(ee=reg128#3 -# asm 2: movdqu 592(ee=%xmm2 -movdqu 592(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 608(pp=%xmm1 -movdqu 608(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 608 ] -# asm 1: movdqu 608(ee=reg128#3 -# asm 2: movdqu 608(ee=%xmm2 -movdqu 608(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 624(pp=%xmm1 -movdqu 624(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 624 ] -# asm 1: movdqu 624(ee=reg128#3 -# asm 2: movdqu 624(ee=%xmm2 -movdqu 624(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 640(pp=%xmm1 -movdqu 640(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 640 ] -# asm 1: movdqu 640(ee=reg128#3 -# asm 2: movdqu 640(ee=%xmm2 -movdqu 640(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 656(pp=%xmm1 -movdqu 656(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 656 ] -# asm 1: movdqu 656(ee=reg128#3 -# asm 2: movdqu 656(ee=%xmm2 -movdqu 656(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = *(uint32 *) (input_1 + 672) -# asm 1: movl 672(s=int64#6d -# asm 2: movl 672(s=%r9d -movl 672(%rsi),%r9d - -# qhasm: e = *(uint32 *) (input_2 + 672) -# asm 1: movl 672(e=int64#7d -# asm 2: movl 672(e=%eax -movl 672(%rdx),%eax - -# qhasm: s &= e -# asm 1: and p=int64#7 -# asm 2: movzbq 676(p=%rax -movzbq 676(%rsi),%rax - -# qhasm: e = *(uint8 *) (input_2 + 676) -# asm 1: movzbq 676(e=int64#8 -# asm 2: movzbq 676(e=%r10 -movzbq 676(%rdx),%r10 - -# qhasm: p &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,i=int64#2 -# asm 2: mov $676,>i=%rsi -mov $676,%rsi - -# qhasm: inner2: -._inner2: - -# qhasm: i -= 1 -# asm 1: sub $1,addr=int64#4 -# asm 2: lea (addr=%rcx -lea (%rdx,%rsi),%rcx - -# qhasm: b0 = *(uint8 *) (addr + 0) -# asm 1: movzbq 0(b0=int64#5 -# asm 2: movzbq 0(b0=%r8 -movzbq 0(%rcx),%r8 - -# qhasm: b1 = *(uint8 *) (addr + 1) -# asm 1: movzbq 1(b1=int64#6 -# asm 2: movzbq 1(b1=%r9 -movzbq 1(%rcx),%r9 - -# qhasm: (uint64) b0 >>= 5 -# asm 1: shr $5,tmp=int64#2 -# asm 2: movq tmp=%rsi -movq 32(%rsp),%rsi - -# qhasm: *(uint8 *) (input_2 + 0) = tmp -# asm 1: movb i=int64#2 -# asm 2: mov $0,>i=%rsi -mov $0,%rsi - -# qhasm: inner3: -._inner3: - -# qhasm: s = *(uint8 *) (input_0 + 0) -# asm 1: movzbq 0(s=int64#4 -# asm 2: movzbq 0(s=%rcx -movzbq 0(%rdi),%rcx - -# qhasm: e = *(uint8 *) (input_2 + 0) -# asm 1: movzbq 0(e=int64#5 -# asm 2: movzbq 0(e=%r8 -movzbq 0(%rdx),%r8 - -# qhasm: s ^= e -# asm 1: xor s=int64#2 -# asm 2: movzbq 0(s=%rsi -movzbq 0(%rdi),%rsi - -# qhasm: e = *(uint8 *) (input_2 + 0) -# asm 1: movzbq 0(e=int64#3 -# asm 2: movzbq 0(e=%rdx -movzbq 0(%rdx),%rdx - -# qhasm: (uint32) e &= 7 -# asm 1: and $7,mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6960119_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6960119_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6960119_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE6960119_SSE_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6960119_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6960119_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6960119_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6960119_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6960119_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE6960119_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6960119_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE6960119_SSE_vec128_set2x( PQCLEAN_MCELIECE6960119_SSE_load8(in), PQCLEAN_MCELIECE6960119_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE6960119_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE6960119_SSE_store8(out + 0, PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE6960119_SSE_store8(out + 8, PQCLEAN_MCELIECE6960119_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece6960119/sse/util.h b/crypto_kem/mceliece/mceliece6960119/sse/util.h deleted file mode 100644 index 5ff907b7..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_UTIL_H -#define PQCLEAN_MCELIECE6960119_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE6960119_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE6960119_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE6960119_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE6960119_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE6960119_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE6960119_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE6960119_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE6960119_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE6960119_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119/sse/vec128.c b/crypto_kem/mceliece/mceliece6960119/sse/vec128.c deleted file mode 100644 index 4e720b2b..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE6960119_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE6960119_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE6960119_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE6960119_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6960119_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE6960119_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6960119_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE6960119_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6960119_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6960119_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6960119_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6960119/sse/vec128.h b/crypto_kem/mceliece/mceliece6960119/sse/vec128.h deleted file mode 100644 index 57de2cc6..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_SSE_VEC128_H -#define PQCLEAN_MCELIECE6960119_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE6960119_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE6960119_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE6960119_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE6960119_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE6960119_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE6960119_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6960119_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE6960119_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE6960119_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece6960119/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece6960119/sse/vec128_mul_asm.S deleted file mode 100644 index 89f2276d..00000000 --- a/crypto_kem/mceliece/mceliece6960119/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6960119_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE6960119_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE6960119_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE6960119_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6960119_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119/vec/api.h b/crypto_kem/mceliece/mceliece6960119/vec/api.h deleted file mode 100644 index 6d4191d1..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_API_H -#define PQCLEAN_MCELIECE6960119_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE6960119_VEC_CRYPTO_ALGNAME "Classic McEliece 6960119" -#define PQCLEAN_MCELIECE6960119_VEC_CRYPTO_PUBLICKEYBYTES 1047319 -#define PQCLEAN_MCELIECE6960119_VEC_CRYPTO_SECRETKEYBYTES 13908 -#define PQCLEAN_MCELIECE6960119_VEC_CRYPTO_CIPHERTEXTBYTES 226 -#define PQCLEAN_MCELIECE6960119_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6960119_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6960119_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6960119_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/benes.c b/crypto_kem/mceliece/mceliece6960119/vec/benes.c deleted file mode 100644 index 8425458a..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6960119_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/benes.h b/crypto_kem/mceliece/mceliece6960119/vec/benes.h deleted file mode 100644 index 84b81a31..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_BENES_H -#define PQCLEAN_MCELIECE6960119_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE6960119_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/bm.c b/crypto_kem/mceliece/mceliece6960119/vec/bm.c deleted file mode 100644 index e6d0b79f..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/bm.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -//void bm(vec out[][ GFBITS ], vec in[][ GFBITS ]) -void PQCLEAN_MCELIECE6960119_VEC_bm(vec out[][GFBITS], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = one << 63; - B[0][0] = 0; - B[1][0] = one << 62; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - update(interval, coefs[N]); - - PQCLEAN_MCELIECE6960119_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(prod[1], C[1], interval[1]); - - d = vec_reduce(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE6960119_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE6960119_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - out[0][i] = (C[0][i] >> 8) | (C[1][i] << 56); - out[1][i] = C[1][i] >> 8; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/bm.h b/crypto_kem/mceliece/mceliece6960119/vec/bm.h deleted file mode 100644 index b9e7f523..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_BM_H -#define PQCLEAN_MCELIECE6960119_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6960119_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/consts.inc b/crypto_kem/mceliece/mceliece6960119/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece6960119/vec/controlbits.c b/crypto_kem/mceliece/mceliece6960119/vec/controlbits.c deleted file mode 100644 index f2ee80b7..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6960119_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6960119_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6960119_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6960119_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/controlbits.h b/crypto_kem/mceliece/mceliece6960119/vec/controlbits.h deleted file mode 100644 index 77c92a08..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE6960119_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6960119_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6960119_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece6960119/vec/crypto_hash.h deleted file mode 100644 index 323f1e25..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6960119_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119/vec/decrypt.c b/crypto_kem/mceliece/mceliece6960119/vec/decrypt.c deleted file mode 100644 index d5e9672c..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/decrypt.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6960119_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6960119_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - r[i - 1] &= (1 << ((GFBITS * SYS_T) % 8)) - 1; // throwing away redundant bits - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 128; i++) { - recv[i] = PQCLEAN_MCELIECE6960119_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6960119_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static uint16_t weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6960119_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6960119_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6960119_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6960119_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6960119_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE6960119_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6960119_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE6960119_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6960119_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6960119_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/decrypt.h b/crypto_kem/mceliece/mceliece6960119/vec/decrypt.h deleted file mode 100644 index 699cc4ea..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE6960119_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6960119_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/encrypt.c b/crypto_kem/mceliece/mceliece6960119/vec/encrypt.c deleted file mode 100644 index b1910acf..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/encrypt.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include - -#include "gf.h" - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint8_t *ind8 = (uint8_t *)ind; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6960119_VEC_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - unsigned char e_tmp[ SYS_N / 8 ]; - - uint64_t b; - - const uint8_t *pk_ptr8; - const uint8_t *e_ptr8 = e_tmp + SYND_BYTES - 1; - - int i, j, k, tail = (PK_NROWS % 8); - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - s[i - 1] &= (1 << tail) - 1; - - for (i = SYND_BYTES - 1; i < SYS_N / 8 - 1; i++) { - e_tmp[i] = (e[i] >> tail) | (e[i + 1] << (8 - tail)); - } - - e_tmp[i] = e[i] >> tail; - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE6960119_VEC_load8(pk_ptr8 + j * 8) & PQCLEAN_MCELIECE6960119_VEC_load8(e_ptr8 + j * 8); - } - - for (k = 0; k < (PK_NCOLS % 64 + 7) / 8; k++) { - b ^= pk_ptr8[8 * j + k] & e_ptr8[8 * j + k]; - } - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6960119_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/encrypt.h b/crypto_kem/mceliece/mceliece6960119/vec/encrypt.h deleted file mode 100644 index 17de3acd..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE6960119_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6960119_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/fft.c b/crypto_kem/mceliece/mceliece6960119/vec/fft.c deleted file mode 100644 index 85229c89..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/fft.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE6960119_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // adding the part contributed by x^128 - -// for (i = 0; i < 128; i++) -// for (b = 0; b < GFBITS; b++) -// out[i][b] ^= powers[i][b]; -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6960119_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/fft.h b/crypto_kem/mceliece/mceliece6960119/vec/fft.h deleted file mode 100644 index 867c9ed8..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_FFT_H -#define PQCLEAN_MCELIECE6960119_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6960119_VEC_fft(vec out[][ GFBITS ], vec in[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/fft_tr.c b/crypto_kem/mceliece/mceliece6960119/vec/fft_tr.c deleted file mode 100644 index e609c32e..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/fft_tr.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6960119_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE6960119_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE6960119_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE6960119_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -/* justifying the length of the output */ -static void postprocess(vec out[4][GFBITS]) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[3][i] <<= (128 - SYS_T) * 2; - out[3][i] >>= (128 - SYS_T) * 2; - } -} - -void PQCLEAN_MCELIECE6960119_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/fft_tr.h b/crypto_kem/mceliece/mceliece6960119/vec/fft_tr.h deleted file mode 100644 index 64e1d4bc..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE6960119_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6960119_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/gf.c b/crypto_kem/mceliece/mceliece6960119/vec/gf.c deleted file mode 100644 index b3215137..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/gf.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6960119_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE6960119_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6960119_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6960119_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE6960119_VEC_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6960119_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[237]; - - for (i = 0; i < 237; i++) { - prod[i] = 0; - } - - for (i = 0; i < 119; i++) { - for (j = 0; j < 119; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6960119_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 236; i >= 119; i--) { - prod[i - 117] ^= PQCLEAN_MCELIECE6960119_VEC_gf_mul(prod[i], (gf) 6400); - prod[i - 119] ^= PQCLEAN_MCELIECE6960119_VEC_gf_mul(prod[i], (gf) 3134); - } - - for (i = 0; i < 119; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/gf.h b/crypto_kem/mceliece/mceliece6960119/vec/gf.h deleted file mode 100644 index b81f13e0..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/gf.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_GF_H -#define PQCLEAN_MCELIECE6960119_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6960119_VEC_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE6960119_VEC_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE6960119_VEC_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE6960119_VEC_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE6960119_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/operations.c b/crypto_kem/mceliece/mceliece6960119/vec/operations.c deleted file mode 100644 index 4208bfb2..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6960119_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6960119_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6960119_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6960119_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6960119_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6960119_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6960119_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6960119_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6960119_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6960119_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6960119_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/params.h b/crypto_kem/mceliece/mceliece6960119/vec/params.h deleted file mode 100644 index 500131b3..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_PARAMS_H -#define PQCLEAN_MCELIECE6960119_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6960 -#define SYS_T 119 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/pk_gen.c b/crypto_kem/mceliece/mceliece6960119/vec/pk_gen.c deleted file mode 100644 index e8f639a2..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/pk_gen.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -int PQCLEAN_MCELIECE6960119_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - const int block_idx = NBLOCKS_I - 1; - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - uint64_t ops[ GFBITS * SYS_T ][ NBLOCKS_I ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ 128 ]; - - // compute the inverses - - PQCLEAN_MCELIECE6960119_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE6960119_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6960119_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_I; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < PK_NROWS; i++) { - for (j = 0; j < NBLOCKS_I; j++) { - ops[ i ][ j ] = 0; - } - } - - for (i = 0; i < PK_NROWS; i++) { - ops[ i ][ i / 64 ] = 1; - ops[ i ][ i / 64 ] <<= (i % 64); - } - - uint64_t column[ PK_NROWS ]; - - for (i = 0; i < PK_NROWS; i++) { - column[i] = mat[ i ][ block_idx ]; - } - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (row = PK_NROWS - 1; row >= 0; row--) { - for (k = 0; k < row; k++) { - mask = mat[ k ][ row / 64 ] >> (row & 63); - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_I; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - - // apply the linear map to the non-systematic part - - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = NBLOCKS_I; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE6960119_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - for (i = 0; i < PK_NROWS; i++) { - mat[ i ][ block_idx ] = column[i]; - } - - for (row = 0; row < PK_NROWS; row++) { - for (k = 0; k < NBLOCKS_H; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < PK_NROWS; c++) { - mask = ops[ row ][ c >> 6 ] >> (c & 63); - mask &= 1; - mask = -mask; - - for (k = block_idx; k < NBLOCKS_H; k++) { - one_row[ k ] ^= mat[ c ][ k ] & mask; - } - } - - for (k = block_idx; k < NBLOCKS_H - 1; k++) { - one_row[k] = (one_row[k] >> tail) | (one_row[k + 1] << (64 - tail)); - PQCLEAN_MCELIECE6960119_VEC_store8(pk, one_row[k]); - pk += 8; - } - - one_row[k] >>= tail; - PQCLEAN_MCELIECE6960119_VEC_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk[ (PK_ROW_BYTES % 8) - 1 ] &= (1 << (PK_NCOLS % 8)) - 1; // removing redundant bits - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/pk_gen.h b/crypto_kem/mceliece/mceliece6960119/vec/pk_gen.h deleted file mode 100644 index 53607165..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE6960119_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE6960119_VEC_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece6960119/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece6960119/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece6960119/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece6960119/vec/sk_gen.c b/crypto_kem/mceliece/mceliece6960119/vec/sk_gen.c deleted file mode 100644 index fe0696cf..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6960119_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6960119_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6960119_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6960119_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6960119_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6960119_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6960119_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6960119_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/sk_gen.h b/crypto_kem/mceliece/mceliece6960119/vec/sk_gen.h deleted file mode 100644 index 557e3343..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE6960119_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6960119_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6960119_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/transpose.c b/crypto_kem/mceliece/mceliece6960119/vec/transpose.c deleted file mode 100644 index bea35a5f..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece6960119/vec/transpose.h b/crypto_kem/mceliece/mceliece6960119/vec/transpose.h deleted file mode 100644 index 9d7079c6..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE6960119_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE6960119_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/util.c b/crypto_kem/mceliece/mceliece6960119/vec/util.c deleted file mode 100644 index 41b277a0..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/util.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - This file is for loading/storing data in a little-endian fashion -*/ -#include "util.h" - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6960119_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6960119_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6960119_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6960119_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6960119_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6960119_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[0][i] = v[0]; - out[1][i] = v[1]; - } -} - -void PQCLEAN_MCELIECE6960119_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6960119_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece6960119/vec/util.h b/crypto_kem/mceliece/mceliece6960119/vec/util.h deleted file mode 100644 index 09f5a21a..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/util.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_UTIL_H -#define PQCLEAN_MCELIECE6960119_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6960119_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE6960119_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE6960119_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE6960119_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE6960119_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE6960119_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE6960119_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/vec.c b/crypto_kem/mceliece/mceliece6960119/vec/vec.c deleted file mode 100644 index 514d2173..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/vec.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE6960119_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE6960119_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE6960119_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE6960119_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return (int)(a & 1) ^ 1; -} - -void PQCLEAN_MCELIECE6960119_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6960119_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6960119_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6960119_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6960119_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6960119/vec/vec.h b/crypto_kem/mceliece/mceliece6960119/vec/vec.h deleted file mode 100644 index 882fce58..00000000 --- a/crypto_kem/mceliece/mceliece6960119/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119_VEC_VEC_H -#define PQCLEAN_MCELIECE6960119_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE6960119_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE6960119_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE6960119_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE6960119_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE6960119_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE6960119_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE6960119_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE6960119_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/LICENSE b/crypto_kem/mceliece/mceliece6960119f/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/LICENSE b/crypto_kem/mceliece/mceliece6960119f/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece6960119f/clean/Makefile.Microsoft_nmake deleted file mode 100644 index e6e1c458..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece6960119f_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/LICENSE b/crypto_kem/mceliece/mceliece6960119f/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.c deleted file mode 100644 index be3eca3c..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE6960119F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.h deleted file mode 100644 index b079d110..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE6960119F_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6960119F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/api.h b/crypto_kem/mceliece/mceliece6960119f/sse/api.h deleted file mode 100644 index 73557280..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/api.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_API_H -#define PQCLEAN_MCELIECE6960119F_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_ALGNAME "Classic McEliece 6960119f" -#define PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_PUBLICKEYBYTES 1047319 -#define PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_SECRETKEYBYTES 13908 -#define PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_CIPHERTEXTBYTES 226 -#define PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6960119F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6960119F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6960119F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/benes.c b/crypto_kem/mceliece/mceliece6960119f/sse/benes.c deleted file mode 100644 index c912b0d7..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE6960119F_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(PQCLEAN_MCELIECE6960119F_SSE_load8(ptr), PQCLEAN_MCELIECE6960119F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE6960119F_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(PQCLEAN_MCELIECE6960119F_SSE_load8(ptr), PQCLEAN_MCELIECE6960119F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6960119F_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/benes.h b/crypto_kem/mceliece/mceliece6960119f/sse/benes.h deleted file mode 100644 index 6a65a79c..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_BENES_H -#define PQCLEAN_MCELIECE6960119F_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE6960119F_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE6960119F_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/bm.c b/crypto_kem/mceliece/mceliece6960119f/sse/bm.c deleted file mode 100644 index 5d06ed97..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/bm.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE6960119F_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE6960119F_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE6960119F_SSE_vec128_or(PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE6960119F_SSE_vec128_or(PQCLEAN_MCELIECE6960119F_SSE_vec128_srl_2x(PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE6960119F_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - uint64_t v[2]; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0, one << 63); - B[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0, one << 62); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setzero(); - } - - for (N = 0; N < SYS_T * 2; N++) { - PQCLEAN_MCELIECE6960119F_SSE_update_asm(interval, coefs[N]); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(prod, C, (vec128 *) interval); - d = PQCLEAN_MCELIECE6960119F_SSE_vec_reduce_asm(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE6960119F_SSE_update_asm(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - v[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(C[i], 0); - v[1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(C[i], 1); - - out[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x((v[0] >> 8) | (v[1] << 56), v[1] >> 8); - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/bm.h b/crypto_kem/mceliece/mceliece6960119f/sse/bm.h deleted file mode 100644 index fe2a9be6..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_BM_H -#define PQCLEAN_MCELIECE6960119F_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6960119F_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/consts.S b/crypto_kem/mceliece/mceliece6960119f/sse/consts.S deleted file mode 100644 index 5cc432db..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE6960119F_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE6960119F_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE6960119F_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE6960119F_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE6960119F_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE6960119F_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE6960119F_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE6960119F_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE6960119F_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE6960119F_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE6960119F_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE6960119F_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE6960119F_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/consts.inc b/crypto_kem/mceliece/mceliece6960119f/sse/consts.inc deleted file mode 100644 index 30188c8f..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/controlbits.c b/crypto_kem/mceliece/mceliece6960119f/sse/controlbits.c deleted file mode 100644 index b3e37fc9..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6960119F_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6960119F_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6960119F_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6960119F_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/controlbits.h b/crypto_kem/mceliece/mceliece6960119f/sse/controlbits.h deleted file mode 100644 index 9a9f89bb..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE6960119F_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6960119F_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6960119F_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece6960119f/sse/crypto_hash.h deleted file mode 100644 index 963365d1..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6960119F_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/decrypt.c b/crypto_kem/mceliece/mceliece6960119f/sse/decrypt.c deleted file mode 100644 index 23f6e494..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/decrypt.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6960119F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119F_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - r[i - 1] &= (1 << ((GFBITS * SYS_T) % 8)) - 1; // throwing away redundant bits - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 64; i++) { - recv[i] = PQCLEAN_MCELIECE6960119F_SSE_load16(r + i * 16); - } -} - -static void postprocess(unsigned char *e, vec128 *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - uint64_t v[2]; - - for (i = 0; i < 64; i++) { - v[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(err[i], 0); - v[1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(err[i], 1); - - PQCLEAN_MCELIECE6960119F_SSE_store8(error8 + i * 16 + 0, v[0]); - PQCLEAN_MCELIECE6960119F_SSE_store8(error8 + i * 16 + 8, v[1]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static uint16_t weight_check(unsigned char *e, vec128 *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < 64; i++) { - w0 += _mm_popcnt_u64(PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(error[i], 0) ); - w0 += _mm_popcnt_u64( PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(error[i], 1) ); - } - - for (i = 0; i < SYS_N / 8; i++) { - w1 += _mm_popcnt_u32( e[i] ); - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_or(PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE6960119F_SSE_vec128_or(diff, PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6960119F_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6960119F_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6960119F_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE6960119F_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6960119F_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6960119F_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE6960119F_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(error[i], allone); - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6960119F_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6960119F_SSE_benes(error, bits_int, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/decrypt.h b/crypto_kem/mceliece/mceliece6960119f/sse/decrypt.h deleted file mode 100644 index 03a97906..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE6960119F_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6960119F_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/encrypt.c b/crypto_kem/mceliece/mceliece6960119f/sse/encrypt.c deleted file mode 100644 index 1c53e9e1..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/encrypt.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include -#include -#include - -#include "gf.h" - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE6960119F_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind, sizeof(ind)); - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6960119F_SSE_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6960119F_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - - PQCLEAN_MCELIECE6960119F_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/encrypt.h b/crypto_kem/mceliece/mceliece6960119f/sse/encrypt.h deleted file mode 100644 index 9752ecc4..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE6960119F_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6960119F_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/fft.c b/crypto_kem/mceliece/mceliece6960119f/sse/fft.c deleted file mode 100644 index 31f19ba1..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/fft.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6960119F_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/fft.h b/crypto_kem/mceliece/mceliece6960119f/sse/fft.h deleted file mode 100644 index b8f764ea..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_FFT_H -#define PQCLEAN_MCELIECE6960119F_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE6960119F_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.c b/crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.c deleted file mode 100644 index 60046cf9..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.c +++ /dev/null @@ -1,355 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6960119F_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6960119F_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -/* justifying the length of the output */ -static void postprocess(vec128 out[][GFBITS]) { - int i; - uint64_t v[2]; - - for (i = 0; i < 13; i++) { - v[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(out[1][i], 0); - v[1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(out[1][i], 1); - - v[1] <<= (128 - SYS_T) * 2; - v[1] >>= (128 - SYS_T) * 2; - - out[1][i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE6960119F_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.h b/crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.h deleted file mode 100644 index 09702f4e..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE6960119F_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE6960119F_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/gf.c b/crypto_kem/mceliece/mceliece6960119f/sse/gf.c deleted file mode 100644 index b731c0be..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/gf.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6960119F_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE6960119F_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6960119F_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6960119F_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE6960119F_SSE_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6960119F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[237]; - - for (i = 0; i < 237; i++) { - prod[i] = 0; - } - - for (i = 0; i < 119; i++) { - for (j = 0; j < 119; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6960119F_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 236; i >= 119; i--) { - prod[i - 117] ^= PQCLEAN_MCELIECE6960119F_SSE_gf_mul(prod[i], (gf) 6400); - prod[i - 119] ^= PQCLEAN_MCELIECE6960119F_SSE_gf_mul(prod[i], (gf) 3134); - } - - for (i = 0; i < 119; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/gf.h b/crypto_kem/mceliece/mceliece6960119f/sse/gf.h deleted file mode 100644 index 99507f1c..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/gf.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_GF_H -#define PQCLEAN_MCELIECE6960119F_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6960119F_SSE_gf_iszero(gf a); -gf PQCLEAN_MCELIECE6960119F_SSE_gf_add(gf in0, gf in1); -gf PQCLEAN_MCELIECE6960119F_SSE_gf_mul(gf in0, gf in1); -uint64_t PQCLEAN_MCELIECE6960119F_SSE_gf_mul2(gf a, gf b0, gf b1); -gf PQCLEAN_MCELIECE6960119F_SSE_gf_frac(gf den, gf num); -gf PQCLEAN_MCELIECE6960119F_SSE_gf_inv(gf in); - -void PQCLEAN_MCELIECE6960119F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/operations.c b/crypto_kem/mceliece/mceliece6960119f/sse/operations.c deleted file mode 100644 index 1f084078..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6960119F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6960119F_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6960119F_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6960119F_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6960119F_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6960119F_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6960119F_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6960119F_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6960119F_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6960119F_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6960119F_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/params.h b/crypto_kem/mceliece/mceliece6960119f/sse/params.h deleted file mode 100644 index f3020f20..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_PARAMS_H -#define PQCLEAN_MCELIECE6960119F_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6960 -#define SYS_T 119 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.c b/crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.c deleted file mode 100644 index 23b541e7..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.c +++ /dev/null @@ -1,359 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -static void transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - return (int)_tzcnt_u64(in); -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ ((SYS_N + 127) / 128) * 2 ], uint32_t *perm) { - int i, j, k, s, block_idx, row, tail; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - tail = row % 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> tail) | - (mat[ row + i ][ block_idx + 1 ] << (64 - tail)); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask(k, ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> tail) | - (mat[ i + j ][ block_idx + 1 ] << (64 - tail)); - } - - transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask(k, ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << (64 - tail) >> (64 - tail)) | (buf[j] << tail); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> tail << tail) | (buf[j] >> (64 - tail)); - } - } - - return 0; -} - -#define NBLOCKS1_H ((SYS_N + 63) / 64) -#define NBLOCKS2_H ((SYS_N + 127) / 128) -#define NBLOCKS1_I ((GFBITS * SYS_T + 63) / 64) -int PQCLEAN_MCELIECE6960119F_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - const int block_idx = NBLOCKS1_I - 1; - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS2_H * 2 ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[64][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ NBLOCKS2_H * 2 ]; - - // compute the inverses - - PQCLEAN_MCELIECE6960119F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119F_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6960119F_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS2_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS2_H; j++) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS1_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (row = 0; row < PK_NROWS; row++) { - for (k = block_idx; k < NBLOCKS1_H; k++) { - one_row[k] = mat[ row ][k]; - } - - for (k = block_idx; k < NBLOCKS1_H - 1; k++) { - one_row[k] = (one_row[k] >> tail) | (one_row[k + 1] << (64 - tail)); - PQCLEAN_MCELIECE6960119F_SSE_store8(pk, one_row[k]); - pk += 8; - } - - one_row[k] >>= tail; - PQCLEAN_MCELIECE6960119F_SSE_store_i(pk, one_row[k], PK_ROW_BYTES % 8); - - pk[ (PK_ROW_BYTES % 8) - 1 ] &= (1 << (PK_NCOLS % 8)) - 1; // removing redundant bits - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.h b/crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.h deleted file mode 100644 index 215875a9..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE6960119F_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE6960119F_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece6960119f/sse/scalars_2x.inc deleted file mode 100644 index 79d1fe1c..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece6960119f/sse/scalars_4x.inc deleted file mode 100644 index 2ac61f2d..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.c b/crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.c deleted file mode 100644 index 05ca7bcc..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6960119F_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6960119F_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6960119F_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6960119F_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6960119F_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6960119F_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6960119F_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6960119F_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.h b/crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.h deleted file mode 100644 index 86b99297..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE6960119F_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6960119F_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6960119F_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece6960119f/sse/syndrome_asm.S deleted file mode 100644 index 50af277a..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/syndrome_asm.S +++ /dev/null @@ -1,1311 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: reg128 pp - -# qhasm: reg128 ee - -# qhasm: reg128 ss - -# qhasm: int64 b0 - -# qhasm: int64 b1 - -# qhasm: int64 i - -# qhasm: int64 p - -# qhasm: int64 e - -# qhasm: int64 s - -# qhasm: int64 tmp - -# qhasm: stack64 back - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6960119F_SSE_syndrome_asm -.global PQCLEAN_MCELIECE6960119F_SSE_syndrome_asm -_PQCLEAN_MCELIECE6960119F_SSE_syndrome_asm: -PQCLEAN_MCELIECE6960119F_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $64,%r11 -sub %r11,%rsp - -# qhasm: input_2 += 193 -# asm 1: add $193,tmp=int64#4 -# asm 2: movzbq 0(tmp=%rcx -movzbq 0(%rdx),%rcx - -# qhasm: back = tmp -# asm 1: movq back=stack64#1 -# asm 2: movq back=32(%rsp) -movq %rcx,32(%rsp) - -# qhasm: i = 0 -# asm 1: mov $0,>i=int64#4 -# asm 2: mov $0,>i=%rcx -mov $0,%rcx - -# qhasm: inner1: -._inner1: - -# qhasm: addr = input_2 + i -# asm 1: lea (addr=int64#5 -# asm 2: lea (addr=%r8 -lea (%rdx,%rcx),%r8 - -# qhasm: b0 = *(uint8 *) (addr + 0) -# asm 1: movzbq 0(b0=int64#6 -# asm 2: movzbq 0(b0=%r9 -movzbq 0(%r8),%r9 - -# qhasm: b1 = *(uint8 *) (addr + 1) -# asm 1: movzbq 1(b1=int64#7 -# asm 2: movzbq 1(b1=%rax -movzbq 1(%r8),%rax - -# qhasm: (uint64) b0 >>= 3 -# asm 1: shr $3,b0=int64#4 -# asm 2: movzbq 1(b0=%rcx -movzbq 1(%r8),%rcx - -# qhasm: (uint64) b0 >>= 3 -# asm 1: shr $3,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1547 -# asm 1: mov $1547,>row=int64#5 -# asm 2: mov $1547,>row=%r8 -mov $1547,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,ss=reg128#1 -# asm 2: movdqu 0(ss=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: ee = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(ee=reg128#2 -# asm 2: movdqu 0(ee=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: ss &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 16(pp=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(ee=reg128#3 -# asm 2: movdqu 16(ee=%xmm2 -movdqu 16(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 32(pp=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(ee=reg128#3 -# asm 2: movdqu 32(ee=%xmm2 -movdqu 32(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 48(pp=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(ee=reg128#3 -# asm 2: movdqu 48(ee=%xmm2 -movdqu 48(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 64(pp=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(ee=reg128#3 -# asm 2: movdqu 64(ee=%xmm2 -movdqu 64(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 80(pp=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(ee=reg128#3 -# asm 2: movdqu 80(ee=%xmm2 -movdqu 80(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 96(pp=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(ee=reg128#3 -# asm 2: movdqu 96(ee=%xmm2 -movdqu 96(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 112(pp=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(ee=reg128#3 -# asm 2: movdqu 112(ee=%xmm2 -movdqu 112(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 128(pp=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(ee=reg128#3 -# asm 2: movdqu 128(ee=%xmm2 -movdqu 128(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 144(pp=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(ee=reg128#3 -# asm 2: movdqu 144(ee=%xmm2 -movdqu 144(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 160(pp=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(ee=reg128#3 -# asm 2: movdqu 160(ee=%xmm2 -movdqu 160(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 176(pp=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(ee=reg128#3 -# asm 2: movdqu 176(ee=%xmm2 -movdqu 176(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 192(pp=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(ee=reg128#3 -# asm 2: movdqu 192(ee=%xmm2 -movdqu 192(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 208(pp=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(ee=reg128#3 -# asm 2: movdqu 208(ee=%xmm2 -movdqu 208(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 224(pp=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(ee=reg128#3 -# asm 2: movdqu 224(ee=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 240(pp=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(ee=reg128#3 -# asm 2: movdqu 240(ee=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 256(pp=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(ee=reg128#3 -# asm 2: movdqu 256(ee=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 272(pp=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(ee=reg128#3 -# asm 2: movdqu 272(ee=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 288(pp=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(ee=reg128#3 -# asm 2: movdqu 288(ee=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 304(pp=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(ee=reg128#3 -# asm 2: movdqu 304(ee=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 320(pp=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(ee=reg128#3 -# asm 2: movdqu 320(ee=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 336(pp=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(ee=reg128#3 -# asm 2: movdqu 336(ee=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 352(pp=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(ee=reg128#3 -# asm 2: movdqu 352(ee=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 368(pp=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(ee=reg128#3 -# asm 2: movdqu 368(ee=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 384(pp=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(ee=reg128#3 -# asm 2: movdqu 384(ee=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 400(pp=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(ee=reg128#3 -# asm 2: movdqu 400(ee=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 416(pp=%xmm1 -movdqu 416(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(ee=reg128#3 -# asm 2: movdqu 416(ee=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 432(pp=%xmm1 -movdqu 432(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 432 ] -# asm 1: movdqu 432(ee=reg128#3 -# asm 2: movdqu 432(ee=%xmm2 -movdqu 432(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 448(pp=%xmm1 -movdqu 448(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 448 ] -# asm 1: movdqu 448(ee=reg128#3 -# asm 2: movdqu 448(ee=%xmm2 -movdqu 448(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 464(pp=%xmm1 -movdqu 464(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 464 ] -# asm 1: movdqu 464(ee=reg128#3 -# asm 2: movdqu 464(ee=%xmm2 -movdqu 464(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 480(pp=%xmm1 -movdqu 480(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 480 ] -# asm 1: movdqu 480(ee=reg128#3 -# asm 2: movdqu 480(ee=%xmm2 -movdqu 480(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 496(pp=%xmm1 -movdqu 496(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 496 ] -# asm 1: movdqu 496(ee=reg128#3 -# asm 2: movdqu 496(ee=%xmm2 -movdqu 496(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 512(pp=%xmm1 -movdqu 512(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 512 ] -# asm 1: movdqu 512(ee=reg128#3 -# asm 2: movdqu 512(ee=%xmm2 -movdqu 512(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 528(pp=%xmm1 -movdqu 528(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 528 ] -# asm 1: movdqu 528(ee=reg128#3 -# asm 2: movdqu 528(ee=%xmm2 -movdqu 528(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 544(pp=%xmm1 -movdqu 544(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 544 ] -# asm 1: movdqu 544(ee=reg128#3 -# asm 2: movdqu 544(ee=%xmm2 -movdqu 544(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 560(pp=%xmm1 -movdqu 560(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 560 ] -# asm 1: movdqu 560(ee=reg128#3 -# asm 2: movdqu 560(ee=%xmm2 -movdqu 560(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 576(pp=%xmm1 -movdqu 576(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 576 ] -# asm 1: movdqu 576(ee=reg128#3 -# asm 2: movdqu 576(ee=%xmm2 -movdqu 576(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 592(pp=%xmm1 -movdqu 592(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 592 ] -# asm 1: movdqu 592(ee=reg128#3 -# asm 2: movdqu 592(ee=%xmm2 -movdqu 592(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 608(pp=%xmm1 -movdqu 608(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 608 ] -# asm 1: movdqu 608(ee=reg128#3 -# asm 2: movdqu 608(ee=%xmm2 -movdqu 608(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 624(pp=%xmm1 -movdqu 624(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 624 ] -# asm 1: movdqu 624(ee=reg128#3 -# asm 2: movdqu 624(ee=%xmm2 -movdqu 624(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 640(pp=%xmm1 -movdqu 640(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 640 ] -# asm 1: movdqu 640(ee=reg128#3 -# asm 2: movdqu 640(ee=%xmm2 -movdqu 640(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand pp=reg128#2 -# asm 2: movdqu 656(pp=%xmm1 -movdqu 656(%rsi),%xmm1 - -# qhasm: ee = mem128[ input_2 + 656 ] -# asm 1: movdqu 656(ee=reg128#3 -# asm 2: movdqu 656(ee=%xmm2 -movdqu 656(%rdx),%xmm2 - -# qhasm: pp &= ee -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: s = *(uint32 *) (input_1 + 672) -# asm 1: movl 672(s=int64#6d -# asm 2: movl 672(s=%r9d -movl 672(%rsi),%r9d - -# qhasm: e = *(uint32 *) (input_2 + 672) -# asm 1: movl 672(e=int64#7d -# asm 2: movl 672(e=%eax -movl 672(%rdx),%eax - -# qhasm: s &= e -# asm 1: and p=int64#7 -# asm 2: movzbq 676(p=%rax -movzbq 676(%rsi),%rax - -# qhasm: e = *(uint8 *) (input_2 + 676) -# asm 1: movzbq 676(e=int64#8 -# asm 2: movzbq 676(e=%r10 -movzbq 676(%rdx),%r10 - -# qhasm: p &= e -# asm 1: and c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#7 -# asm 2: movq 0(b64=%rax -movq 0(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,i=int64#2 -# asm 2: mov $676,>i=%rsi -mov $676,%rsi - -# qhasm: inner2: -._inner2: - -# qhasm: i -= 1 -# asm 1: sub $1,addr=int64#4 -# asm 2: lea (addr=%rcx -lea (%rdx,%rsi),%rcx - -# qhasm: b0 = *(uint8 *) (addr + 0) -# asm 1: movzbq 0(b0=int64#5 -# asm 2: movzbq 0(b0=%r8 -movzbq 0(%rcx),%r8 - -# qhasm: b1 = *(uint8 *) (addr + 1) -# asm 1: movzbq 1(b1=int64#6 -# asm 2: movzbq 1(b1=%r9 -movzbq 1(%rcx),%r9 - -# qhasm: (uint64) b0 >>= 5 -# asm 1: shr $5,tmp=int64#2 -# asm 2: movq tmp=%rsi -movq 32(%rsp),%rsi - -# qhasm: *(uint8 *) (input_2 + 0) = tmp -# asm 1: movb i=int64#2 -# asm 2: mov $0,>i=%rsi -mov $0,%rsi - -# qhasm: inner3: -._inner3: - -# qhasm: s = *(uint8 *) (input_0 + 0) -# asm 1: movzbq 0(s=int64#4 -# asm 2: movzbq 0(s=%rcx -movzbq 0(%rdi),%rcx - -# qhasm: e = *(uint8 *) (input_2 + 0) -# asm 1: movzbq 0(e=int64#5 -# asm 2: movzbq 0(e=%r8 -movzbq 0(%rdx),%r8 - -# qhasm: s ^= e -# asm 1: xor s=int64#2 -# asm 2: movzbq 0(s=%rsi -movzbq 0(%rdi),%rsi - -# qhasm: e = *(uint8 *) (input_2 + 0) -# asm 1: movzbq 0(e=int64#3 -# asm 2: movzbq 0(e=%rdx -movzbq 0(%rdx),%rdx - -# qhasm: (uint32) e &= 7 -# asm 1: and $7,mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE6960119F_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE6960119F_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE6960119F_SSE_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6960119F_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6960119F_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6960119F_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6960119F_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6960119F_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(v[0], v[1]); - } -} - -void PQCLEAN_MCELIECE6960119F_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6960119F_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x( PQCLEAN_MCELIECE6960119F_SSE_load8(in), PQCLEAN_MCELIECE6960119F_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE6960119F_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE6960119F_SSE_store8(out + 0, PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE6960119F_SSE_store8(out + 8, PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/util.h b/crypto_kem/mceliece/mceliece6960119f/sse/util.h deleted file mode 100644 index 8052ac61..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_UTIL_H -#define PQCLEAN_MCELIECE6960119F_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE6960119F_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE6960119F_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE6960119F_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE6960119F_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE6960119F_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE6960119F_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE6960119F_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE6960119F_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE6960119F_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/vec128.c b/crypto_kem/mceliece/mceliece6960119f/sse/vec128.c deleted file mode 100644 index 5fe02f6d..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE6960119F_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE6960119F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE6960119F_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6960119F_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/vec128.h b/crypto_kem/mceliece/mceliece6960119f/sse/vec128.h deleted file mode 100644 index 2901ad95..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_SSE_VEC128_H -#define PQCLEAN_MCELIECE6960119F_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE6960119F_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE6960119F_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE6960119F_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE6960119F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE6960119F_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE6960119F_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE6960119F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE6960119F_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE6960119F_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece6960119f/sse/vec128_mul_asm.S deleted file mode 100644 index e0dbdaa5..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE6960119F_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE6960119F_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE6960119F_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE6960119F_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE6960119F_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/api.h b/crypto_kem/mceliece/mceliece6960119f/vec/api.h deleted file mode 100644 index 127da5f5..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/api.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_API_H -#define PQCLEAN_MCELIECE6960119F_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_ALGNAME "Classic McEliece 6960119f" -#define PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_PUBLICKEYBYTES 1047319 -#define PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_SECRETKEYBYTES 13908 -#define PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_CIPHERTEXTBYTES 226 -#define PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE6960119F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE6960119F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE6960119F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/benes.c b/crypto_kem/mceliece/mceliece6960119f/vec/benes.c deleted file mode 100644 index cfe8b7f4..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE6960119F_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE6960119F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/benes.h b/crypto_kem/mceliece/mceliece6960119f/vec/benes.h deleted file mode 100644 index 9adf5c20..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_BENES_H -#define PQCLEAN_MCELIECE6960119F_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE6960119F_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/bm.c b/crypto_kem/mceliece/mceliece6960119f/vec/bm.c deleted file mode 100644 index 78c86ddd..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/bm.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -//void bm(vec out[][ GFBITS ], vec in[][ GFBITS ]) -void PQCLEAN_MCELIECE6960119F_VEC_bm(vec out[][GFBITS], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - - gf d, b; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = one << 63; - B[0][0] = 0; - B[1][0] = one << 62; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < SYS_T * 2; N++) { - update(interval, coefs[N]); - - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(prod[1], C[1], interval[1]); - - d = vec_reduce(prod); - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE6960119F_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE6960119F_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, 0); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - for (i = 0; i < GFBITS; i++) { - out[0][i] = (C[0][i] >> 8) | (C[1][i] << 56); - out[1][i] = C[1][i] >> 8; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/bm.h b/crypto_kem/mceliece/mceliece6960119f/vec/bm.h deleted file mode 100644 index dbe7e8e8..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_BM_H -#define PQCLEAN_MCELIECE6960119F_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6960119F_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/consts.inc b/crypto_kem/mceliece/mceliece6960119f/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/controlbits.c b/crypto_kem/mceliece/mceliece6960119f/vec/controlbits.c deleted file mode 100644 index bd95e7cc..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE6960119F_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE6960119F_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE6960119F_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE6960119F_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/controlbits.h b/crypto_kem/mceliece/mceliece6960119f/vec/controlbits.h deleted file mode 100644 index cd62e1c0..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE6960119F_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE6960119F_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE6960119F_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece6960119f/vec/crypto_hash.h deleted file mode 100644 index 9952c054..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE6960119F_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/decrypt.c b/crypto_kem/mceliece/mceliece6960119f/vec/decrypt.c deleted file mode 100644 index 68f2863e..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/decrypt.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE6960119F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119F_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - unsigned char r[ 1024 ]; - - for (i = 0; i < SYND_BYTES; i++) { - r[i] = s[i]; - } - - r[i - 1] &= (1 << ((GFBITS * SYS_T) % 8)) - 1; // throwing away redundant bits - - for (i = SYND_BYTES; i < 1024; i++) { - r[i] = 0; - } - - for (i = 0; i < 128; i++) { - recv[i] = PQCLEAN_MCELIECE6960119F_VEC_load8(r + i * 8); - } -} - -static void postprocess(unsigned char *e, vec *err) { - int i; - unsigned char error8[ (1 << GFBITS) / 8 ]; - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE6960119F_VEC_store8(error8 + i * 8, err[i]); - } - - for (i = 0; i < SYS_N / 8; i++) { - e[i] = error8[i]; - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static uint16_t weight_check(const unsigned char *e, const vec *error) { - int i; - uint16_t w0 = 0; - uint16_t w1 = 0; - uint16_t check; - - for (i = 0; i < (1 << GFBITS); i++) { - w0 += (error[i / 64] >> (i % 64)) & 1; - } - - for (i = 0; i < SYS_N; i++) { - w1 += (e[i / 8] >> (i % 8)) & 1; - } - - check = (w0 ^ SYS_T) | (w1 ^ SYS_T); - check -= 1; - check >>= 15; - - return check; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE6960119F_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE6960119F_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE6960119F_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE6960119F_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE6960119F_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE6960119F_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE6960119F_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE6960119F_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE6960119F_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE6960119F_VEC_benes(error, sk + IRR_BYTES, 0); - - postprocess(e, error); - - check_weight = weight_check(e, error); - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/decrypt.h b/crypto_kem/mceliece/mceliece6960119f/vec/decrypt.h deleted file mode 100644 index e180bb18..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE6960119F_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE6960119F_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/encrypt.c b/crypto_kem/mceliece/mceliece6960119f/vec/encrypt.c deleted file mode 100644 index 50247e67..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/encrypt.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include -#include - -#include "gf.h" - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq, count; - - uint16_t ind[ SYS_T * 2 ]; - uint8_t *ind8 = (uint8_t *)ind; - uint32_t ind32[ SYS_T * 2 ]; - uint64_t e_int[ (SYS_N + 63) / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T * 2; i++) { - ind[i] &= GFMASK; - } - - // moving and counting indices in the correct range - - count = 0; - for (i = 0; i < SYS_T * 2; i++) { - if (ind[i] < SYS_N) { - ind32[ count++ ] = ind[i]; - } - } - - if (count < SYS_T) { - continue; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind32[i] == ind32[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind32[j] & 63); - } - - for (i = 0; i < (SYS_N + 63) / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind32[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < (SYS_N + 63) / 64 - 1; i++) { - PQCLEAN_MCELIECE6960119F_VEC_store8(e, e_int[i]); - e += 8; - } - - for (j = 0; j < (SYS_N % 64); j += 8) { - e[ j / 8 ] = (e_int[i] >> j) & 0xFF; - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - unsigned char e_tmp[ SYS_N / 8 ]; - - uint64_t b; - - const uint8_t *pk_ptr8; - const uint8_t *e_ptr8 = e_tmp + SYND_BYTES - 1; - - int i, j, k, tail = (PK_NROWS % 8); - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - s[i - 1] &= (1 << tail) - 1; - - for (i = SYND_BYTES - 1; i < SYS_N / 8 - 1; i++) { - e_tmp[i] = (e[i] >> tail) | (e[i + 1] << (8 - tail)); - } - - e_tmp[i] = e[i] >> tail; - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE6960119F_VEC_load8(pk_ptr8 + j * 8) & PQCLEAN_MCELIECE6960119F_VEC_load8(e_ptr8 + j * 8); - } - - for (k = 0; k < (PK_NCOLS % 64 + 7) / 8; k++) { - b ^= pk_ptr8[8 * j + k] & e_ptr8[8 * j + k]; - } - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE6960119F_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/encrypt.h b/crypto_kem/mceliece/mceliece6960119f/vec/encrypt.h deleted file mode 100644 index d96aeb47..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE6960119F_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE6960119F_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/fft.c b/crypto_kem/mceliece/mceliece6960119f/vec/fft.c deleted file mode 100644 index 4d8f41e1..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/fft.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += ((uint64_t)1 << i); - } - - // adding the part contributed by x^128 - -// for (i = 0; i < 128; i++) -// for (b = 0; b < GFBITS; b++) -// out[i][b] ^= powers[i][b]; -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE6960119F_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/fft.h b/crypto_kem/mceliece/mceliece6960119f/vec/fft.h deleted file mode 100644 index cd18799a..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_FFT_H -#define PQCLEAN_MCELIECE6960119F_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6960119F_VEC_fft(vec out[][ GFBITS ], vec in[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.c b/crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.c deleted file mode 100644 index de7ef2b5..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119F_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE6960119F_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -/* justifying the length of the output */ -static void postprocess(vec out[4][GFBITS]) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[3][i] <<= (128 - SYS_T) * 2; - out[3][i] >>= (128 - SYS_T) * 2; - } -} - -void PQCLEAN_MCELIECE6960119F_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - radix_conversions_tr(out); - - postprocess(out); -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.h b/crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.h deleted file mode 100644 index 5981e8a0..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE6960119F_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE6960119F_VEC_fft_tr(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/gf.c b/crypto_kem/mceliece/mceliece6960119f/vec/gf.c deleted file mode 100644 index a72c47fe..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/gf.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE6960119F_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE6960119F_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* square twice */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE6960119F_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // ^11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // ^1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // ^11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // ^111111111111 - - return gf_sqmul(out, num); // ^1111111111110 = ^-1 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE6960119F_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE6960119F_VEC_gf_frac(in, ((gf) 1)); -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE6960119F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[237]; - - for (i = 0; i < 237; i++) { - prod[i] = 0; - } - - for (i = 0; i < 119; i++) { - for (j = 0; j < 119; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE6960119F_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 236; i >= 119; i--) { - prod[i - 117] ^= PQCLEAN_MCELIECE6960119F_VEC_gf_mul(prod[i], (gf) 6400); - prod[i - 119] ^= PQCLEAN_MCELIECE6960119F_VEC_gf_mul(prod[i], (gf) 3134); - } - - for (i = 0; i < 119; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/gf.h b/crypto_kem/mceliece/mceliece6960119f/vec/gf.h deleted file mode 100644 index 6c7eb43f..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/gf.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_GF_H -#define PQCLEAN_MCELIECE6960119F_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE6960119F_VEC_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE6960119F_VEC_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE6960119F_VEC_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE6960119F_VEC_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE6960119F_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/operations.c b/crypto_kem/mceliece/mceliece6960119f/vec/operations.c deleted file mode 100644 index 9abcda53..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE6960119F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE6960119F_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE6960119F_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE6960119F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE6960119F_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE6960119F_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE6960119F_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE6960119F_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE6960119F_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE6960119F_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE6960119F_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE6960119F_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/params.h b/crypto_kem/mceliece/mceliece6960119f/vec/params.h deleted file mode 100644 index 490810d3..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_PARAMS_H -#define PQCLEAN_MCELIECE6960119F_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 6960 -#define SYS_T 119 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.c b/crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.c deleted file mode 100644 index c668685b..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - int i, b, m = 0, r = 0; - - for (i = 0; i < 64; i++) { - b = (int)(in >> i) & 1; - m |= b; - r += (m ^ 1) & (b ^ 1); - } - - return r; -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ (SYS_N + 63) / 64 ], uint32_t *perm) { - int i, j, k, s, block_idx, row, tail; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - tail = row % 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> tail) | - (mat[ row + i ][ block_idx + 1 ] << (64 - tail)); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> tail) | - (mat[ i + j ][ block_idx + 1 ] << (64 - tail)); - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << (64 - tail) >> (64 - tail)) | (buf[j] << tail); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> tail << tail) | (buf[j] >> (64 - tail)); - } - } - - return 0; -} - -int PQCLEAN_MCELIECE6960119F_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { -#define NBLOCKS_H ((SYS_N + 63) / 64) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) - const int block_idx = NBLOCKS_I - 1; - int tail = (GFBITS * SYS_T) % 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ NBLOCKS_H ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE6960119F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE6960119F_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE6960119F_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE6960119F_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE6960119F_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination - - for (row = 0; row < PK_NROWS; row++) { - i = row >> 6; - j = row & 63; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < NBLOCKS_H; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - - for (row = 0; row < PK_NROWS; row++) { - for (k = block_idx; k < NBLOCKS_H - 1; k++) { - mat[row][k] = (mat[row][k] >> tail) | (mat[row][k + 1] << (64 - tail)); - PQCLEAN_MCELIECE6960119F_VEC_store8(pk, mat[row][k]); - pk += 8; - } - - mat[row][k] >>= tail; - PQCLEAN_MCELIECE6960119F_VEC_store_i(pk, mat[row][k], PK_ROW_BYTES % 8); - - pk[ (PK_ROW_BYTES % 8) - 1 ] &= (1 << (PK_NCOLS % 8)) - 1; // removing redundant bits - - pk += PK_ROW_BYTES % 8; - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.h b/crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.h deleted file mode 100644 index 8db4ec52..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE6960119F_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE6960119F_VEC_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece6960119f/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece6960119f/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.c b/crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.c deleted file mode 100644 index ed56ab8f..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE6960119F_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE6960119F_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE6960119F_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE6960119F_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE6960119F_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE6960119F_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE6960119F_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE6960119F_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.h b/crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.h deleted file mode 100644 index 76bc2bfd..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE6960119F_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE6960119F_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE6960119F_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/transpose.c b/crypto_kem/mceliece/mceliece6960119f/vec/transpose.c deleted file mode 100644 index 3aaa9e53..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/transpose.h b/crypto_kem/mceliece/mceliece6960119f/vec/transpose.h deleted file mode 100644 index 4c95634e..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE6960119F_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE6960119F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/util.c b/crypto_kem/mceliece/mceliece6960119f/vec/util.c deleted file mode 100644 index 56b16065..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/util.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - This file is for loading/storing data in a little-endian fashion -*/ -#include "util.h" - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6960119F_VEC_store_i(unsigned char *out, uint64_t in, int i) { - int j; - - for (j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE6960119F_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE6960119F_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE6960119F_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE6960119F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v[2]; - uint16_t irr[ SYS_T + 1 ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE6960119F_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - irr[ SYS_T ] = 1; - - for (i = 0; i < GFBITS; i++) { - v[0] = v[1] = 0; - - for (j = 63; j >= 0; j--) { - v[0] <<= 1; - v[0] |= (irr[j] >> i) & 1; - } - for (j = SYS_T; j >= 64; j--) { - v[1] <<= 1; - v[1] |= (irr[j] >> i) & 1; - } - - out[0][i] = v[0]; - out[1][i] = v[1]; - } -} - -void PQCLEAN_MCELIECE6960119F_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE6960119F_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/util.h b/crypto_kem/mceliece/mceliece6960119f/vec/util.h deleted file mode 100644 index 474f9f45..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/util.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_UTIL_H -#define PQCLEAN_MCELIECE6960119F_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE6960119F_VEC_store_i(unsigned char *out, uint64_t in, int i); - -void PQCLEAN_MCELIECE6960119F_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE6960119F_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE6960119F_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE6960119F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE6960119F_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE6960119F_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/vec.c b/crypto_kem/mceliece/mceliece6960119f/vec/vec.c deleted file mode 100644 index a7af3241..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/vec.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE6960119F_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE6960119F_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE6960119F_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE6960119F_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return (int)(a & 1) ^ 1; -} - -void PQCLEAN_MCELIECE6960119F_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE6960119F_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE6960119F_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE6960119F_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE6960119F_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE6960119F_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece6960119f/vec/vec.h b/crypto_kem/mceliece/mceliece6960119f/vec/vec.h deleted file mode 100644 index bf0f93d0..00000000 --- a/crypto_kem/mceliece/mceliece6960119f/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE6960119F_VEC_VEC_H -#define PQCLEAN_MCELIECE6960119F_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE6960119F_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE6960119F_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE6960119F_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE6960119F_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE6960119F_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE6960119F_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE6960119F_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE6960119F_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/avx/LICENSE b/crypto_kem/mceliece/mceliece8192128/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece8192128/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece8192128/clean/LICENSE b/crypto_kem/mceliece/mceliece8192128/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece8192128/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece8192128/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece8192128/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 32b1892f..00000000 --- a/crypto_kem/mceliece/mceliece8192128/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece8192128_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece8192128/sse/LICENSE b/crypto_kem/mceliece/mceliece8192128/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.c deleted file mode 100644 index e845015a..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE8192128_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.h deleted file mode 100644 index 24a122a8..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE8192128_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE8192128_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128/sse/api.h b/crypto_kem/mceliece/mceliece8192128/sse/api.h deleted file mode 100644 index 8b5112c6..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_API_H -#define PQCLEAN_MCELIECE8192128_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE8192128_SSE_CRYPTO_ALGNAME "Classic McEliece 8192128" -#define PQCLEAN_MCELIECE8192128_SSE_CRYPTO_PUBLICKEYBYTES 1357824 -#define PQCLEAN_MCELIECE8192128_SSE_CRYPTO_SECRETKEYBYTES 14080 -#define PQCLEAN_MCELIECE8192128_SSE_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE8192128_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE8192128_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE8192128_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE8192128_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/benes.c b/crypto_kem/mceliece/mceliece8192128/sse/benes.c deleted file mode 100644 index 97bae266..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE8192128_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE8192128_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(PQCLEAN_MCELIECE8192128_SSE_load8(ptr), PQCLEAN_MCELIECE8192128_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE8192128_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(PQCLEAN_MCELIECE8192128_SSE_load8(ptr), PQCLEAN_MCELIECE8192128_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE8192128_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/benes.h b/crypto_kem/mceliece/mceliece8192128/sse/benes.h deleted file mode 100644 index 19e9c880..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_BENES_H -#define PQCLEAN_MCELIECE8192128_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE8192128_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE8192128_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/bm.c b/crypto_kem/mceliece/mceliece8192128/sse/bm.c deleted file mode 100644 index 701128db..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/bm.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE8192128_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE8192128_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE8192128_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE8192128_SSE_vec128_or(PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE8192128_SSE_vec128_or(PQCLEAN_MCELIECE8192128_SSE_vec128_srl_2x(PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE8192128_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE8192128_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE8192128_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE8192128_SSE_vec128_setzero(); - B[0] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0, one << 63); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_setzero(); - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(prod, C, (vec128 *) interval); - PQCLEAN_MCELIECE8192128_SSE_update_asm(interval, coefs[N]); - d = PQCLEAN_MCELIECE8192128_SSE_vec_reduce_asm(prod); - - t = PQCLEAN_MCELIECE8192128_SSE_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE8192128_SSE_update_asm(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - c0 = t >> 32; - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE8192128_SSE_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(out, out, C); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/bm.h b/crypto_kem/mceliece/mceliece8192128/sse/bm.h deleted file mode 100644 index 4ada489b..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_BM_H -#define PQCLEAN_MCELIECE8192128_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE8192128_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/consts.S b/crypto_kem/mceliece/mceliece8192128/sse/consts.S deleted file mode 100644 index e9c9b1b4..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE8192128_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE8192128_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE8192128_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE8192128_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE8192128_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE8192128_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE8192128_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE8192128_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE8192128_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE8192128_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE8192128_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE8192128_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE8192128_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE8192128_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/consts.inc b/crypto_kem/mceliece/mceliece8192128/sse/consts.inc deleted file mode 100644 index 3629e235..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece8192128/sse/controlbits.c b/crypto_kem/mceliece/mceliece8192128/sse/controlbits.c deleted file mode 100644 index 4ef3749d..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE8192128_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE8192128_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE8192128_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE8192128_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/controlbits.h b/crypto_kem/mceliece/mceliece8192128/sse/controlbits.h deleted file mode 100644 index 8fe83fa4..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE8192128_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE8192128_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE8192128_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece8192128/sse/crypto_hash.h deleted file mode 100644 index 88567966..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE8192128_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128/sse/decrypt.c b/crypto_kem/mceliece/mceliece8192128/sse/decrypt.c deleted file mode 100644 index 9c6720d1..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/decrypt.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE8192128_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - - recv[0] = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits(0); - - for (i = 1; i < 64; i++) { - recv[i] = recv[0]; - } - - for (i = 0; i < SYND_BYTES / 16; i++) { - recv[i] = PQCLEAN_MCELIECE8192128_SSE_load16(s + i * 16); - } -} - -static uint16_t weight(vec128 *v) { - uint16_t i, w = 0; - - for (i = 0; i < 64; i++) { - w += (uint16_t)_mm_popcnt_u64(PQCLEAN_MCELIECE8192128_SSE_vec128_extract(v[i], 0) ); - w += (uint16_t)_mm_popcnt_u64( PQCLEAN_MCELIECE8192128_SSE_vec128_extract(v[i], 1) ); - } - - return w; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_or(PQCLEAN_MCELIECE8192128_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE8192128_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE8192128_SSE_vec128_or(diff, PQCLEAN_MCELIECE8192128_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE8192128_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE8192128_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE8192128_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE8192128_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE8192128_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE8192128_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE8192128_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(error[i], allone); - } - - check_weight = weight(error) ^ SYS_T; - check_weight -= 1; - check_weight >>= 15; - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE8192128_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE8192128_SSE_benes(error, bits_int, 0); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE8192128_SSE_store16(e + i * 16, error[i]); - } - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/decrypt.h b/crypto_kem/mceliece/mceliece8192128/sse/decrypt.h deleted file mode 100644 index 1728ffa0..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE8192128_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE8192128_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/encrypt.c b/crypto_kem/mceliece/mceliece8192128/sse/encrypt.c deleted file mode 100644 index 806be006..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/encrypt.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE8192128_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq; - - uint16_t ind[ SYS_T ]; - uint64_t e_int[ SYS_N / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind, sizeof(ind)); - - for (i = 0; i < SYS_T; i++) { - ind[i] &= GFMASK; - } - - for (i = 0; i < SYS_T; i++) { - ind[i] &= GFMASK; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < SYS_N / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < SYS_N / 64; i++) { - PQCLEAN_MCELIECE8192128_SSE_store8(e + i * 8, e_int[i]); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE8192128_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - PQCLEAN_MCELIECE8192128_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/encrypt.h b/crypto_kem/mceliece/mceliece8192128/sse/encrypt.h deleted file mode 100644 index a9b7e6b0..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE8192128_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE8192128_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/fft.c b/crypto_kem/mceliece/mceliece8192128/sse/fft.c deleted file mode 100644 index e4ce86d1..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/fft.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE8192128_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE8192128_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec128 powers[ 64 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE8192128_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } - - // adding the part contributed by x^128 - - for (i = 0; i < 64; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(out[i][b], powers[i][b]); - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE8192128_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/fft.h b/crypto_kem/mceliece/mceliece8192128/sse/fft.h deleted file mode 100644 index f0d18300..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_FFT_H -#define PQCLEAN_MCELIECE8192128_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE8192128_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/fft_tr.c b/crypto_kem/mceliece/mceliece8192128/sse/fft_tr.c deleted file mode 100644 index 4f406ada..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/fft_tr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE8192128_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(x1, PQCLEAN_MCELIECE8192128_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(x1, PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE8192128_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -void PQCLEAN_MCELIECE8192128_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/fft_tr.h b/crypto_kem/mceliece/mceliece8192128/sse/fft_tr.h deleted file mode 100644 index 3006975d..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE8192128_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE8192128_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/gf.c b/crypto_kem/mceliece/mceliece8192128/sse/gf.c deleted file mode 100644 index 554e8316..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128_SSE_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE8192128_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE8192128_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE8192128_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE8192128_SSE_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE8192128_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE8192128_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE8192128_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE8192128_SSE_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE8192128_SSE_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE8192128_SSE_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/gf.h b/crypto_kem/mceliece/mceliece8192128/sse/gf.h deleted file mode 100644 index f4d50f07..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/gf.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_GF_H -#define PQCLEAN_MCELIECE8192128_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE8192128_SSE_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE8192128_SSE_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE8192128_SSE_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE8192128_SSE_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE8192128_SSE_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128_SSE_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/operations.c b/crypto_kem/mceliece/mceliece8192128/sse/operations.c deleted file mode 100644 index 567e67fb..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE8192128_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE8192128_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE8192128_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE8192128_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE8192128_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE8192128_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE8192128_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE8192128_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE8192128_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE8192128_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE8192128_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/params.h b/crypto_kem/mceliece/mceliece8192128/sse/params.h deleted file mode 100644 index f316e2b7..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_PARAMS_H -#define PQCLEAN_MCELIECE8192128_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 8192 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/pk_gen.c b/crypto_kem/mceliece/mceliece8192128/sse/pk_gen.c deleted file mode 100644 index e1a63605..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/pk_gen.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -int PQCLEAN_MCELIECE8192128_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int i, j, k; - int row, c, d; - - uint64_t mat[ GFBITS * SYS_T ][ 128 ]; - uint64_t ops[ GFBITS * SYS_T ][ GFBITS * SYS_T / 64 ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ (SYS_N - GFBITS * SYS_T) / 64 ]; - - // compute the inverses - - PQCLEAN_MCELIECE8192128_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE8192128_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE8192128_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < (GFBITS * SYS_T + 127) / 128; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < (GFBITS * SYS_T + 127) / 128; j++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - ops[ row ][ c ] = 0; - } - } - } - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - ops[ row ][ i ] = 1; - ops[ row ][ i ] <<= j; - } - } - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - for (k = row + 1; k < GFBITS * SYS_T; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < GFBITS * SYS_T; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (i = (GFBITS * SYS_T) / 64 - 1; i >= 0; i--) { - for (j = 63; j >= 0; j--) { - row = i * 64 + j; - - for (k = 0; k < row; k++) { - { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - } - } - - // apply the linear map to the non-systematic part - - for (j = (GFBITS * SYS_T + 127) / 128; j < 64; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = (GFBITS * SYS_T + 127) / 128; j < 64; j++) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE8192128_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - for (k = 0; k < (SYS_N - GFBITS * SYS_T) / 64; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - for (d = 0; d < 64; d++) { - mask = ops[ row ][ c ] >> d; - mask &= 1; - mask = -mask; - - for (k = 0; k < (SYS_N - GFBITS * SYS_T) / 64; k++) { - one_row[ k ] ^= mat[ c * 64 + d ][ k + (GFBITS * SYS_T) / 64 ] & mask; - } - } - } - - for (k = 0; k < (SYS_N - GFBITS * SYS_T) / 64; k++) { - PQCLEAN_MCELIECE8192128_SSE_store8(pk, one_row[ k ]); - pk += 8; - } - } - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/pk_gen.h b/crypto_kem/mceliece/mceliece8192128/sse/pk_gen.h deleted file mode 100644 index 052c55c9..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE8192128_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE8192128_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/powers.inc b/crypto_kem/mceliece/mceliece8192128/sse/powers.inc deleted file mode 100644 index 231dc3ee..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/powers.inc +++ /dev/null @@ -1,960 +0,0 @@ -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -} diff --git a/crypto_kem/mceliece/mceliece8192128/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece8192128/sse/scalars_2x.inc deleted file mode 100644 index 086b83f1..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece8192128/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece8192128/sse/scalars_4x.inc deleted file mode 100644 index e3cff180..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/sk_gen.c b/crypto_kem/mceliece/mceliece8192128/sse/sk_gen.c deleted file mode 100644 index 8b0068d0..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE8192128_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE8192128_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE8192128_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE8192128_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE8192128_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE8192128_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE8192128_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE8192128_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/sk_gen.h b/crypto_kem/mceliece/mceliece8192128/sse/sk_gen.h deleted file mode 100644 index efe346cc..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE8192128_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE8192128_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE8192128_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece8192128/sse/syndrome_asm.S deleted file mode 100644 index 844913c6..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/syndrome_asm.S +++ /dev/null @@ -1,1449 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: reg128 p - -# qhasm: reg128 e - -# qhasm: reg128 s - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE8192128_SSE_syndrome_asm -.global PQCLEAN_MCELIECE8192128_SSE_syndrome_asm -_PQCLEAN_MCELIECE8192128_SSE_syndrome_asm: -PQCLEAN_MCELIECE8192128_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 1357008 -# asm 1: add $1357008,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1664 -# asm 1: mov $1664,>row=int64#5 -# asm 2: mov $1664,>row=%r8 -mov $1664,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,s=reg128#1 -# asm 2: movdqu 0(s=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: e = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(e=reg128#2 -# asm 2: movdqu 208(e=%xmm1 -movdqu 208(%rdx),%xmm1 - -# qhasm: s &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 16(p=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(e=reg128#3 -# asm 2: movdqu 224(e=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 32(p=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(e=reg128#3 -# asm 2: movdqu 240(e=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 48(p=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(e=reg128#3 -# asm 2: movdqu 256(e=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 64(p=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(e=reg128#3 -# asm 2: movdqu 272(e=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 80(p=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(e=reg128#3 -# asm 2: movdqu 288(e=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 96(p=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(e=reg128#3 -# asm 2: movdqu 304(e=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 112(p=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(e=reg128#3 -# asm 2: movdqu 320(e=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 128(p=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(e=reg128#3 -# asm 2: movdqu 336(e=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 144(p=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(e=reg128#3 -# asm 2: movdqu 352(e=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 160(p=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(e=reg128#3 -# asm 2: movdqu 368(e=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 176(p=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(e=reg128#3 -# asm 2: movdqu 384(e=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 192(p=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(e=reg128#3 -# asm 2: movdqu 400(e=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 208(p=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(e=reg128#3 -# asm 2: movdqu 416(e=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 224(p=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 432 ] -# asm 1: movdqu 432(e=reg128#3 -# asm 2: movdqu 432(e=%xmm2 -movdqu 432(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 240(p=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 448 ] -# asm 1: movdqu 448(e=reg128#3 -# asm 2: movdqu 448(e=%xmm2 -movdqu 448(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 256(p=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 464 ] -# asm 1: movdqu 464(e=reg128#3 -# asm 2: movdqu 464(e=%xmm2 -movdqu 464(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 272(p=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 480 ] -# asm 1: movdqu 480(e=reg128#3 -# asm 2: movdqu 480(e=%xmm2 -movdqu 480(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 288(p=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 496 ] -# asm 1: movdqu 496(e=reg128#3 -# asm 2: movdqu 496(e=%xmm2 -movdqu 496(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 304(p=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 512 ] -# asm 1: movdqu 512(e=reg128#3 -# asm 2: movdqu 512(e=%xmm2 -movdqu 512(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 320(p=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 528 ] -# asm 1: movdqu 528(e=reg128#3 -# asm 2: movdqu 528(e=%xmm2 -movdqu 528(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 336(p=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 544 ] -# asm 1: movdqu 544(e=reg128#3 -# asm 2: movdqu 544(e=%xmm2 -movdqu 544(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 352(p=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 560 ] -# asm 1: movdqu 560(e=reg128#3 -# asm 2: movdqu 560(e=%xmm2 -movdqu 560(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 368(p=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 576 ] -# asm 1: movdqu 576(e=reg128#3 -# asm 2: movdqu 576(e=%xmm2 -movdqu 576(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 384(p=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 592 ] -# asm 1: movdqu 592(e=reg128#3 -# asm 2: movdqu 592(e=%xmm2 -movdqu 592(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 400(p=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 608 ] -# asm 1: movdqu 608(e=reg128#3 -# asm 2: movdqu 608(e=%xmm2 -movdqu 608(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 416(p=%xmm1 -movdqu 416(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 624 ] -# asm 1: movdqu 624(e=reg128#3 -# asm 2: movdqu 624(e=%xmm2 -movdqu 624(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 432(p=%xmm1 -movdqu 432(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 640 ] -# asm 1: movdqu 640(e=reg128#3 -# asm 2: movdqu 640(e=%xmm2 -movdqu 640(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 448(p=%xmm1 -movdqu 448(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 656 ] -# asm 1: movdqu 656(e=reg128#3 -# asm 2: movdqu 656(e=%xmm2 -movdqu 656(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 464(p=%xmm1 -movdqu 464(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 672 ] -# asm 1: movdqu 672(e=reg128#3 -# asm 2: movdqu 672(e=%xmm2 -movdqu 672(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 480(p=%xmm1 -movdqu 480(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 688 ] -# asm 1: movdqu 688(e=reg128#3 -# asm 2: movdqu 688(e=%xmm2 -movdqu 688(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 496(p=%xmm1 -movdqu 496(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 704 ] -# asm 1: movdqu 704(e=reg128#3 -# asm 2: movdqu 704(e=%xmm2 -movdqu 704(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 512(p=%xmm1 -movdqu 512(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 720 ] -# asm 1: movdqu 720(e=reg128#3 -# asm 2: movdqu 720(e=%xmm2 -movdqu 720(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 528(p=%xmm1 -movdqu 528(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 736 ] -# asm 1: movdqu 736(e=reg128#3 -# asm 2: movdqu 736(e=%xmm2 -movdqu 736(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 544(p=%xmm1 -movdqu 544(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 752 ] -# asm 1: movdqu 752(e=reg128#3 -# asm 2: movdqu 752(e=%xmm2 -movdqu 752(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 560(p=%xmm1 -movdqu 560(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 768 ] -# asm 1: movdqu 768(e=reg128#3 -# asm 2: movdqu 768(e=%xmm2 -movdqu 768(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 576(p=%xmm1 -movdqu 576(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 784 ] -# asm 1: movdqu 784(e=reg128#3 -# asm 2: movdqu 784(e=%xmm2 -movdqu 784(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 592(p=%xmm1 -movdqu 592(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 800 ] -# asm 1: movdqu 800(e=reg128#3 -# asm 2: movdqu 800(e=%xmm2 -movdqu 800(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 608(p=%xmm1 -movdqu 608(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 816 ] -# asm 1: movdqu 816(e=reg128#3 -# asm 2: movdqu 816(e=%xmm2 -movdqu 816(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 624(p=%xmm1 -movdqu 624(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 832 ] -# asm 1: movdqu 832(e=reg128#3 -# asm 2: movdqu 832(e=%xmm2 -movdqu 832(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 640(p=%xmm1 -movdqu 640(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 848 ] -# asm 1: movdqu 848(e=reg128#3 -# asm 2: movdqu 848(e=%xmm2 -movdqu 848(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 656(p=%xmm1 -movdqu 656(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 864 ] -# asm 1: movdqu 864(e=reg128#3 -# asm 2: movdqu 864(e=%xmm2 -movdqu 864(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 672(p=%xmm1 -movdqu 672(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 880 ] -# asm 1: movdqu 880(e=reg128#3 -# asm 2: movdqu 880(e=%xmm2 -movdqu 880(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 688(p=%xmm1 -movdqu 688(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 896 ] -# asm 1: movdqu 896(e=reg128#3 -# asm 2: movdqu 896(e=%xmm2 -movdqu 896(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 704(p=%xmm1 -movdqu 704(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 912 ] -# asm 1: movdqu 912(e=reg128#3 -# asm 2: movdqu 912(e=%xmm2 -movdqu 912(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 720(p=%xmm1 -movdqu 720(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 928 ] -# asm 1: movdqu 928(e=reg128#3 -# asm 2: movdqu 928(e=%xmm2 -movdqu 928(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 736(p=%xmm1 -movdqu 736(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 944 ] -# asm 1: movdqu 944(e=reg128#3 -# asm 2: movdqu 944(e=%xmm2 -movdqu 944(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 752(p=%xmm1 -movdqu 752(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 960 ] -# asm 1: movdqu 960(e=reg128#3 -# asm 2: movdqu 960(e=%xmm2 -movdqu 960(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 768(p=%xmm1 -movdqu 768(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 976 ] -# asm 1: movdqu 976(e=reg128#3 -# asm 2: movdqu 976(e=%xmm2 -movdqu 976(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 784(p=%xmm1 -movdqu 784(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 992 ] -# asm 1: movdqu 992(e=reg128#3 -# asm 2: movdqu 992(e=%xmm2 -movdqu 992(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 800(p=%xmm1 -movdqu 800(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 1008 ] -# asm 1: movdqu 1008(e=reg128#3 -# asm 2: movdqu 1008(e=%xmm2 -movdqu 1008(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#6 -# asm 2: movq 0(b64=%r9 -movq 0(%rcx),%r9 - -# qhasm: c_all = count(b64) -# asm 1: popcnt c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 8 ] -# asm 1: movq 8(b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,s=reg128#1 -# asm 2: movdqu 0(s=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(e=reg128#2 -# asm 2: movdqu 0(e=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 16(s=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(e=reg128#2 -# asm 2: movdqu 16(e=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 32(s=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(e=reg128#2 -# asm 2: movdqu 32(e=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 48(s=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(e=reg128#2 -# asm 2: movdqu 48(e=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 64(s=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(e=reg128#2 -# asm 2: movdqu 64(e=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 80(s=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(e=reg128#2 -# asm 2: movdqu 80(e=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 96(s=%xmm0 -movdqu 96(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(e=reg128#2 -# asm 2: movdqu 96(e=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 112(s=%xmm0 -movdqu 112(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(e=reg128#2 -# asm 2: movdqu 112(e=%xmm1 -movdqu 112(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 128(s=%xmm0 -movdqu 128(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(e=reg128#2 -# asm 2: movdqu 128(e=%xmm1 -movdqu 128(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 144(s=%xmm0 -movdqu 144(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(e=reg128#2 -# asm 2: movdqu 144(e=%xmm1 -movdqu 144(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 160(s=%xmm0 -movdqu 160(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(e=reg128#2 -# asm 2: movdqu 160(e=%xmm1 -movdqu 160(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 176(s=%xmm0 -movdqu 176(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(e=reg128#2 -# asm 2: movdqu 176(e=%xmm1 -movdqu 176(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 192(s=%xmm0 -movdqu 192(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(e=reg128#2 -# asm 2: movdqu 192(e=%xmm1 -movdqu 192(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE8192128_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE8192128_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE8192128_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE8192128_SSE_store_i(unsigned char *out, uint64_t in, int i) { - for (int j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE8192128_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE8192128_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE8192128_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE8192128_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v0 = 0, v1 = 0; - uint16_t irr[ SYS_T ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE8192128_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 63; j >= 0; j--) { - v0 <<= 1; - v1 <<= 1; - v0 |= (irr[j] >> i) & 1; - v1 |= (irr[j + 64] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(v0, v1); - } -} - -void PQCLEAN_MCELIECE8192128_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE8192128_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE8192128_SSE_vec128_set2x( PQCLEAN_MCELIECE8192128_SSE_load8(in), PQCLEAN_MCELIECE8192128_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE8192128_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE8192128_SSE_store8(out + 0, PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE8192128_SSE_store8(out + 8, PQCLEAN_MCELIECE8192128_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece8192128/sse/util.h b/crypto_kem/mceliece/mceliece8192128/sse/util.h deleted file mode 100644 index ddc83308..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_UTIL_H -#define PQCLEAN_MCELIECE8192128_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE8192128_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE8192128_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE8192128_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE8192128_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE8192128_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE8192128_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE8192128_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE8192128_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE8192128_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128/sse/vec128.c b/crypto_kem/mceliece/mceliece8192128/sse/vec128.c deleted file mode 100644 index aea6bfd6..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE8192128_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE8192128_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE8192128_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE8192128_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE8192128_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE8192128_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE8192128_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE8192128_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE8192128_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE8192128_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE8192128_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece8192128/sse/vec128.h b/crypto_kem/mceliece/mceliece8192128/sse/vec128.h deleted file mode 100644 index ceab047f..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_SSE_VEC128_H -#define PQCLEAN_MCELIECE8192128_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE8192128_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE8192128_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE8192128_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE8192128_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE8192128_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE8192128_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE8192128_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE8192128_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE8192128_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece8192128/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece8192128/sse/vec128_mul_asm.S deleted file mode 100644 index 3ae48af6..00000000 --- a/crypto_kem/mceliece/mceliece8192128/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE8192128_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE8192128_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE8192128_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE8192128_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE8192128_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128/vec/api.h b/crypto_kem/mceliece/mceliece8192128/vec/api.h deleted file mode 100644 index 620d5d6e..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_API_H -#define PQCLEAN_MCELIECE8192128_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE8192128_VEC_CRYPTO_ALGNAME "Classic McEliece 8192128" -#define PQCLEAN_MCELIECE8192128_VEC_CRYPTO_PUBLICKEYBYTES 1357824 -#define PQCLEAN_MCELIECE8192128_VEC_CRYPTO_SECRETKEYBYTES 14080 -#define PQCLEAN_MCELIECE8192128_VEC_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE8192128_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE8192128_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE8192128_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE8192128_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/benes.c b/crypto_kem/mceliece/mceliece8192128/vec/benes.c deleted file mode 100644 index feb579b7..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE8192128_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/benes.h b/crypto_kem/mceliece/mceliece8192128/vec/benes.h deleted file mode 100644 index a25b3f65..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_BENES_H -#define PQCLEAN_MCELIECE8192128_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE8192128_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/bm.c b/crypto_kem/mceliece/mceliece8192128/vec/bm.c deleted file mode 100644 index 1123bc96..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/bm.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE8192128_VEC_bm(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - vec v[GFBITS]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = 0; - B[0][0] = 0; - B[1][0] = one << 63; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(prod[1], C[1], interval[1]); - update(interval, coefs[N]); - d = vec_reduce(prod); - - t = PQCLEAN_MCELIECE8192128_VEC_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE8192128_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE8192128_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - c0 = (gf)(t >> 32); - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE8192128_VEC_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - v[i] = PQCLEAN_MCELIECE8192128_VEC_vec_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_mul(out[0], C[0], v); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(out[1], C[1], v); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/bm.h b/crypto_kem/mceliece/mceliece8192128/vec/bm.h deleted file mode 100644 index b7b3e30a..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_BM_H -#define PQCLEAN_MCELIECE8192128_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE8192128_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/consts.inc b/crypto_kem/mceliece/mceliece8192128/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece8192128/vec/controlbits.c b/crypto_kem/mceliece/mceliece8192128/vec/controlbits.c deleted file mode 100644 index 8c888e07..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE8192128_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE8192128_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE8192128_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE8192128_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/controlbits.h b/crypto_kem/mceliece/mceliece8192128/vec/controlbits.h deleted file mode 100644 index a3e90410..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE8192128_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE8192128_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE8192128_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece8192128/vec/crypto_hash.h deleted file mode 100644 index 8a4ec7b2..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE8192128_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128/vec/decrypt.c b/crypto_kem/mceliece/mceliece8192128/vec/decrypt.c deleted file mode 100644 index 7488c854..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/decrypt.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE8192128_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE8192128_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - - recv[0] = 0; - - for (i = 1; i < 128; i++) { - recv[i] = recv[0]; - } - - for (i = 0; i < SYND_BYTES / 8; i++) { - recv[i] = PQCLEAN_MCELIECE8192128_VEC_load8(s + i * 8); - } -} - -static uint16_t weight(const vec *v) { - uint16_t i, w = 0; - - for (i = 0; i < SYS_N; i++) { - w += (uint16_t)((v[i / 64] >> (i % 64)) & 1); - } - - return w; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE8192128_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE8192128_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE8192128_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE8192128_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE8192128_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE8192128_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE8192128_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE8192128_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - check_weight = weight(error) ^ SYS_T; - check_weight -= 1; - check_weight >>= 15; - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE8192128_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE8192128_VEC_benes(error, sk + IRR_BYTES, 0); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE8192128_VEC_store8(e + i * 8, error[i]); - } - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/decrypt.h b/crypto_kem/mceliece/mceliece8192128/vec/decrypt.h deleted file mode 100644 index 11bbe4ad..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE8192128_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE8192128_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/encrypt.c b/crypto_kem/mceliece/mceliece8192128/vec/encrypt.c deleted file mode 100644 index 9ebc6009..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/encrypt.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq; - - uint16_t ind[ SYS_T ]; - uint8_t *ind8 = (uint8_t *)ind; - uint64_t e_int[ SYS_N / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T; i++) { - ind[i] &= GFMASK; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < SYS_N / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < SYS_N / 64; i++) { - PQCLEAN_MCELIECE8192128_VEC_store8(e + i * 8, e_int[i]); - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE8192128_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE8192128_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE8192128_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/encrypt.h b/crypto_kem/mceliece/mceliece8192128/vec/encrypt.h deleted file mode 100644 index 3ee62ce6..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE8192128_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE8192128_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/fft.c b/crypto_kem/mceliece/mceliece8192128/vec/fft.c deleted file mode 100644 index 604fb7ef..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/fft.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec powers[ 128 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE8192128_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += (uint64_t)1 << i; - } - - // adding the part contributed by x^128 - - for (i = 0; i < 128; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE8192128_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} diff --git a/crypto_kem/mceliece/mceliece8192128/vec/fft.h b/crypto_kem/mceliece/mceliece8192128/vec/fft.h deleted file mode 100644 index 9a46454f..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_FFT_H -#define PQCLEAN_MCELIECE8192128_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - see http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE8192128_VEC_fft(vec /*out*/[][GFBITS], vec /*in*/[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/fft_tr.c b/crypto_kem/mceliece/mceliece8192128/vec/fft_tr.c deleted file mode 100644 index 81d28992..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/fft_tr.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE8192128_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE8192128_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE8192128_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE8192128_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -void PQCLEAN_MCELIECE8192128_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/fft_tr.h b/crypto_kem/mceliece/mceliece8192128/vec/fft_tr.h deleted file mode 100644 index 13fe4704..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE8192128_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE8192128_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/gf.c b/crypto_kem/mceliece/mceliece8192128/vec/gf.c deleted file mode 100644 index 2c34c1ae..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128_VEC_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE8192128_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE8192128_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE8192128_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE8192128_VEC_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE8192128_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE8192128_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE8192128_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE8192128_VEC_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE8192128_VEC_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE8192128_VEC_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/gf.h b/crypto_kem/mceliece/mceliece8192128/vec/gf.h deleted file mode 100644 index cbd30a9c..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/gf.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_GF_H -#define PQCLEAN_MCELIECE8192128_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE8192128_VEC_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE8192128_VEC_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE8192128_VEC_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE8192128_VEC_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE8192128_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128_VEC_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/operations.c b/crypto_kem/mceliece/mceliece8192128/vec/operations.c deleted file mode 100644 index 81f4e05d..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE8192128_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE8192128_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE8192128_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE8192128_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE8192128_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE8192128_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE8192128_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE8192128_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE8192128_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE8192128_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE8192128_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/params.h b/crypto_kem/mceliece/mceliece8192128/vec/params.h deleted file mode 100644 index 5ddd48ef..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_PARAMS_H -#define PQCLEAN_MCELIECE8192128_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 8192 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/pk_gen.c b/crypto_kem/mceliece/mceliece8192128/vec/pk_gen.c deleted file mode 100644 index 93ca4234..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/pk_gen.c +++ /dev/null @@ -1,248 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -int PQCLEAN_MCELIECE8192128_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - int i, j, k; - int row, c, d; - - uint64_t mat[ GFBITS * SYS_T ][ 128 ]; - uint64_t ops[ GFBITS * SYS_T ][ GFBITS * SYS_T / 64 ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - uint64_t one_row[ (SYS_N - GFBITS * SYS_T) / 64 ]; - - // compute the inverses - - PQCLEAN_MCELIECE8192128_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE8192128_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE8192128_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < (GFBITS * SYS_T + 63) / 64; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < (GFBITS * SYS_T + 63) / 64; j++) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination to obtain an upper triangular matrix - // and keep track of the operations in ops - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - ops[ row ][ c ] = 0; - } - } - } - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - ops[ row ][ i ] = 1; - ops[ row ][ i ] <<= j; - } - } - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - for (k = row + 1; k < GFBITS * SYS_T; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - ops[ row ][ c ] ^= ops[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = row + 1; k < GFBITS * SYS_T; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - } - - // computing the lineaer map required to obatin the systematic form - - for (i = (GFBITS * SYS_T) / 64 - 1; i >= 0; i--) { - for (j = 63; j >= 0; j--) { - row = i * 64 + j; - - for (k = 0; k < row; k++) { - { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - ops[ k ][ c ] ^= ops[ row ][ c ] & mask; - } - } - } - } - } - - // apply the linear map to the non-systematic part - - for (j = (GFBITS * SYS_T + 63) / 64; j < 128; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = (GFBITS * SYS_T + 63) / 64; j < 128; j++) { - PQCLEAN_MCELIECE8192128_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - for (k = 0; k < (SYS_N - GFBITS * SYS_T) / 64; k++) { - one_row[ k ] = 0; - } - - for (c = 0; c < (GFBITS * SYS_T) / 64; c++) { - for (d = 0; d < 64; d++) { - mask = ops[ row ][ c ] >> d; - mask &= 1; - mask = -mask; - - for (k = 0; k < (SYS_N - GFBITS * SYS_T) / 64; k++) { - one_row[ k ] ^= mat[ c * 64 + d ][ k + (GFBITS * SYS_T) / 64 ] & mask; - } - } - } - - for (k = 0; k < (SYS_N - GFBITS * SYS_T) / 64; k++) { - PQCLEAN_MCELIECE8192128_VEC_store8(pk, one_row[ k ]); - pk += 8; - } - } - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/pk_gen.h b/crypto_kem/mceliece/mceliece8192128/vec/pk_gen.h deleted file mode 100644 index 81f82ea9..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE8192128_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE8192128_VEC_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/powers.inc b/crypto_kem/mceliece/mceliece8192128/vec/powers.inc deleted file mode 100644 index a9bd6179..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/powers.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -} diff --git a/crypto_kem/mceliece/mceliece8192128/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece8192128/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece8192128/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece8192128/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece8192128/vec/sk_gen.c b/crypto_kem/mceliece/mceliece8192128/vec/sk_gen.c deleted file mode 100644 index d3859812..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE8192128_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE8192128_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE8192128_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE8192128_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE8192128_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE8192128_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE8192128_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE8192128_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/sk_gen.h b/crypto_kem/mceliece/mceliece8192128/vec/sk_gen.h deleted file mode 100644 index 7e8d0d8c..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE8192128_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE8192128_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE8192128_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/transpose.c b/crypto_kem/mceliece/mceliece8192128/vec/transpose.c deleted file mode 100644 index 48a488a9..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece8192128/vec/transpose.h b/crypto_kem/mceliece/mceliece8192128/vec/transpose.h deleted file mode 100644 index 83fdcf27..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE8192128_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE8192128_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/util.c b/crypto_kem/mceliece/mceliece8192128/vec/util.c deleted file mode 100644 index f827f16c..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/util.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "util.h" - -void PQCLEAN_MCELIECE8192128_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE8192128_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE8192128_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE8192128_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v0 = 0, v1 = 0; - uint16_t irr[ SYS_T ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE8192128_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 63; j >= 0; j--) { - v0 <<= 1; - v1 <<= 1; - v0 |= (irr[j] >> i) & 1; - v1 |= (irr[j + 64] >> i) & 1; - } - - out[0][i] = v0; - out[1][i] = v1; - } -} - -void PQCLEAN_MCELIECE8192128_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE8192128_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece8192128/vec/util.h b/crypto_kem/mceliece/mceliece8192128/vec/util.h deleted file mode 100644 index a6ce12c8..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/util.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_UTIL_H -#define PQCLEAN_MCELIECE8192128_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE8192128_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE8192128_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE8192128_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE8192128_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE8192128_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE8192128_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/vec.c b/crypto_kem/mceliece/mceliece8192128/vec/vec.c deleted file mode 100644 index 6eabd459..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/vec.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE8192128_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE8192128_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE8192128_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE8192128_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return (int)(a & 1) ^ 1; -} - -void PQCLEAN_MCELIECE8192128_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE8192128_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE8192128_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE8192128_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE8192128_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece8192128/vec/vec.h b/crypto_kem/mceliece/mceliece8192128/vec/vec.h deleted file mode 100644 index b3699f23..00000000 --- a/crypto_kem/mceliece/mceliece8192128/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128_VEC_VEC_H -#define PQCLEAN_MCELIECE8192128_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE8192128_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE8192128_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE8192128_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE8192128_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE8192128_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE8192128_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE8192128_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE8192128_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/LICENSE b/crypto_kem/mceliece/mceliece8192128f/avx/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/avx/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/LICENSE b/crypto_kem/mceliece/mceliece8192128f/clean/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/clean/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/Makefile.Microsoft_nmake b/crypto_kem/mceliece/mceliece8192128f/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 0bd91b10..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,24 +0,0 @@ -# This Makefile can be used with GNU Make or BSD Make - -LIBRARY = libmceliece8192128f_clean.lib - -OBJECTS = aes256ctr.obj benes.obj bm.obj controlbits.obj decrypt.obj encrypt.obj gf.obj \ - operations.obj pk_gen.obj root.obj sk_gen.obj synd.obj transpose.obj util.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/LICENSE b/crypto_kem/mceliece/mceliece8192128f/sse/LICENSE deleted file mode 100644 index eba3e7ce..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Public Domain. - -Authors of Classic McEliece in alphabetical order: - -Daniel J. Bernstein, University of Illinois at Chicago -Tung Chou, Osaka University -Tanja Lange, Technische Universiteit Eindhoven -Ingo von Maurich, self -Rafael Misoczki, Intel Corporation -Ruben Niederhagen, Fraunhofer SIT -Edoardo Persichetti, Florida Atlantic University -Christiane Peters, self -Peter Schwabe, Radboud University -Nicolas Sendrier, Inria -Jakub Szefer, Yale University -Wen Wang, Yale University diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.c b/crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.c deleted file mode 100644 index 0c79ad92..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "aes256ctr.h" - -void PQCLEAN_MCELIECE8192128F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES]) { - - aes256ctx state; - aes256_ctr_keyexp(&state, key); - aes256_ctr(out, outlen, nonce, &state); - aes256_ctx_release(&state); -} diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.h b/crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.h deleted file mode 100644 index 7c0badba..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/aes256ctr.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_AES256CTR_H -#define PQCLEAN_MCELIECE8192128F_SSE_AES256CTR_H - -#include -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE8192128F_SSE_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/api.h b/crypto_kem/mceliece/mceliece8192128f/sse/api.h deleted file mode 100644 index 7c07b7ec..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_API_H -#define PQCLEAN_MCELIECE8192128F_SSE_API_H - -#include - -#define PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_ALGNAME "Classic McEliece 8192128f" -#define PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_PUBLICKEYBYTES 1357824 -#define PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_SECRETKEYBYTES 14080 -#define PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE8192128F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE8192128F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE8192128F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/benes.c b/crypto_kem/mceliece/mceliece8192128f/sse/benes.c deleted file mode 100644 index 3b4583e8..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/benes.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" - -static void layer_x(vec128 *data, vec128 *bits) { - int i; - vec128 v0, v1; - vec128 d; - - for (i = 0; i < 64; i += 2) { - v0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(data[i + 0], data[i + 1]); - v1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(data[i + 0], data[i + 1]); - - d = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(v0, v1); - d = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(d, *bits++); - v0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(v0, d); - v1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(v1, d); - - data[i + 0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(v0, v1); - data[i + 1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(v0, v1); - } -} - -static void layer_0(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 2) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x ], bs[ x + 1 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, *cond++); - bs[ x ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x ], diff); - bs[ x + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 1 ], diff); - } -} - -static void layer_1(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 4) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 2 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 2 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 2 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 3 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 3 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 3 ], diff); - - cond += 2; - } -} - -static void layer_2(vec128 *bs, vec128 *cond) { - int x; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 8) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 0 ], bs[ x + 4 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[0]); - bs[ x + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 0 ], diff); - bs[ x + 4 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 4 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 1 ], bs[ x + 5 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[1]); - bs[ x + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 1 ], diff); - bs[ x + 5 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 5 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 2 ], bs[ x + 6 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[2]); - bs[ x + 2 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 2 ], diff); - bs[ x + 6 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 6 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 3 ], bs[ x + 7 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[3]); - bs[ x + 3 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 3 ], diff); - bs[ x + 7 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ x + 7 ], diff); - - cond += 4; - } -} - -static void layer_3(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 16) { - for (s = x; s < x + 8; s += 4) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 8 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 8 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 8 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 9 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 9 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 9 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 10 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 10 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 10 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 11 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 11 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 11 ], diff); - - cond += 4; - } - } -} - -static void layer_4(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 32) { - for (s = x; s < x + 16; s += 4) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 16 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 16 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 16 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 17 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 17 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 17 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 18 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 18 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 18 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 19 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 19 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 19 ], diff); - - cond += 4; - } - } -} - -static void layer_5(vec128 *bs, vec128 *cond) { - int x, s; - vec128 diff; - - for (x = 0; x < (1 << 6); x += 64) { - for (s = x; s < x + 32; s += 4) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 0 ], bs[ s + 32 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[0]); - bs[ s + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 0 ], diff); - bs[ s + 32 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 32 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 1 ], bs[ s + 33 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[1]); - bs[ s + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 1 ], diff); - bs[ s + 33 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 33 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 2 ], bs[ s + 34 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[2]); - bs[ s + 2 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 2 ], diff); - bs[ s + 34 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 34 ], diff); - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 3 ], bs[ s + 35 ]); - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(diff, cond[3]); - bs[ s + 3 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 3 ], diff); - bs[ s + 35 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(bs[ s + 35 ], diff); - - cond += 4; - } - } -} - -/* input: bits, control bits as array of bytes */ -/* output: bits_int, control bits as array of 128-bit vectors */ -void PQCLEAN_MCELIECE8192128F_SSE_load_bits(vec128 bits_int[][32], const unsigned char *bits) { - int i, j; - const unsigned char *ptr = bits; - - vec128 buf[64]; - - for (i = 0; i <= 5; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(PQCLEAN_MCELIECE8192128F_SSE_load8(ptr), PQCLEAN_MCELIECE8192128F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } - - for (i = 6; i <= 18; i++) { - for (j = 0; j < 32; j++) { - bits_int[i][j] = PQCLEAN_MCELIECE8192128F_SSE_load16(ptr); - ptr += 16; - } - } - - for (i = 19; i < 25; i += 2) { - for (j = 0; j < 64; j++) { - buf[j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(PQCLEAN_MCELIECE8192128F_SSE_load8(ptr), PQCLEAN_MCELIECE8192128F_SSE_load8(ptr + 512)); - ptr += 8; - } - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp( buf ); - - for (j = 0; j < 32; j++) { - bits_int[i + 0][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(buf[j], buf[j + 32]); - bits_int[i + 1][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(buf[j], buf[j + 32]); - } - - ptr += 512; - } -} - -/* input: r, sequence of bits to be permuted */ -/* b, control bits as array of 128-bit vectors */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE8192128F_SSE_benes(vec128 *r, vec128 b[][32], int rev) { - int inc; - - vec128 *b_ptr; - - if (rev == 0) { - inc = 32; - b_ptr = b[ 0]; - } else { - inc = -32; - b_ptr = b[24]; - } - - // - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp( r ); - - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp( r ); - - layer_x(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - b_ptr += inc; - layer_x(r, b_ptr); - b_ptr += inc; - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp( r ); - - layer_5(r, b_ptr); - b_ptr += inc; - layer_4(r, b_ptr); - b_ptr += inc; - layer_3(r, b_ptr); - b_ptr += inc; - layer_2(r, b_ptr); - b_ptr += inc; - layer_1(r, b_ptr); - b_ptr += inc; - layer_0(r, b_ptr); - //b_ptr += inc; - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp( r ); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/benes.h b/crypto_kem/mceliece/mceliece8192128f/sse/benes.h deleted file mode 100644 index fe2c79b1..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/benes.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_BENES_H -#define PQCLEAN_MCELIECE8192128F_SSE_BENES_H -/* - This file is for Benes network related functions -*/ - - -#include "vec128.h" - -void PQCLEAN_MCELIECE8192128F_SSE_load_bits(vec128 /*bits_int*/[][32], const unsigned char * /*bits*/); -void PQCLEAN_MCELIECE8192128F_SSE_benes(vec128 * /*r*/, vec128 /*b*/[][32], int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/bm.c b/crypto_kem/mceliece/mceliece8192128f/sse/bm.c deleted file mode 100644 index d8a57e12..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/bm.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -extern gf PQCLEAN_MCELIECE8192128F_SSE_vec_reduce_asm(vec128 *); -extern void PQCLEAN_MCELIECE8192128F_SSE_update_asm(vec128 *, gf); - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return ret; -} - -static inline void vec128_cmov(vec128 *out, vec128 *in, uint16_t mask) { - int i; - - vec128 v0, v1; - - vec128 m0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b( mask); - vec128 m1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(~mask); - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[i], m0); - v1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(out[i], m1); - out[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_or(v0, v1); - } -} - -static inline void interleave(vec128 *in, int idx0, int idx1, vec128 *mask, int b) { - int s = 1 << b; - - vec128 x, y; - - x = PQCLEAN_MCELIECE8192128F_SSE_vec128_or(PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[idx0], mask[0]), - PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[idx1], mask[0]), s)); - - y = PQCLEAN_MCELIECE8192128F_SSE_vec128_or(PQCLEAN_MCELIECE8192128F_SSE_vec128_srl_2x(PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[idx0], mask[1]), s), - PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[idx1], mask[1])); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, vec128 *in) { - int i, k; - - vec128 mask[4][2]; - vec128 buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setzero(); - } - - mask[0][0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ (4 * 0 + k) * 16 + i ] = (PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(buf[i], 0) >> (k * 16)) & GFMASK; - out[ (4 * 1 + k) * 16 + i ] = (PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(buf[i], 1) >> (k * 16)) & GFMASK; - } - } -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE8192128F_SSE_bm(vec128 *out, vec128 in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec128 prod[ GFBITS ]; - vec128 interval[GFBITS]; - vec128 dd[ GFBITS ], bb[ GFBITS ]; - vec128 B[ GFBITS ], C[ GFBITS ]; - vec128 B_tmp[ GFBITS ], C_tmp[ GFBITS ]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[128], in[1]); - - C[0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setzero(); - B[0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0, one << 63); - - for (i = 1; i < GFBITS; i++) { - C[i] = B[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setzero(); - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setzero(); - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(prod, C, (vec128 *) interval); - PQCLEAN_MCELIECE8192128F_SSE_update_asm(interval, coefs[N]); - d = PQCLEAN_MCELIECE8192128F_SSE_vec_reduce_asm(prod); - - t = PQCLEAN_MCELIECE8192128F_SSE_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits((d >> i) & 1); - bb[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(B_tmp, dd, B); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(C_tmp, bb, C); - - vec128_cmov(B, C, mask); - PQCLEAN_MCELIECE8192128F_SSE_update_asm(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(B_tmp[i], C_tmp[i]); - } - - c0 = t >> 32; - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE8192128F_SSE_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - out[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(out, out, C); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/bm.h b/crypto_kem/mceliece/mceliece8192128f/sse/bm.h deleted file mode 100644 index b5f0816f..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/bm.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_BM_H -#define PQCLEAN_MCELIECE8192128F_SSE_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE8192128F_SSE_bm(vec128 * /*out*/, vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/consts.S b/crypto_kem/mceliece/mceliece8192128f/sse/consts.S deleted file mode 100644 index 9a16e5c7..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/consts.S +++ /dev/null @@ -1,32 +0,0 @@ -.data - -# not supported on macos -#.section .rodata -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK0_0 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK0_1 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK1_0 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK1_1 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK2_0 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK2_1 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK3_0 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK3_1 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK4_0 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK4_1 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK5_0 -.globl PQCLEAN_MCELIECE8192128F_SSE_MASK5_1 - -.p2align 4 - -PQCLEAN_MCELIECE8192128F_SSE_MASK0_0: .quad 0x5555555555555555, 0x5555555555555555 -PQCLEAN_MCELIECE8192128F_SSE_MASK0_1: .quad 0xAAAAAAAAAAAAAAAA, 0xAAAAAAAAAAAAAAAA -PQCLEAN_MCELIECE8192128F_SSE_MASK1_0: .quad 0x3333333333333333, 0x3333333333333333 -PQCLEAN_MCELIECE8192128F_SSE_MASK1_1: .quad 0xCCCCCCCCCCCCCCCC, 0xCCCCCCCCCCCCCCCC -PQCLEAN_MCELIECE8192128F_SSE_MASK2_0: .quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F -PQCLEAN_MCELIECE8192128F_SSE_MASK2_1: .quad 0xF0F0F0F0F0F0F0F0, 0xF0F0F0F0F0F0F0F0 -PQCLEAN_MCELIECE8192128F_SSE_MASK3_0: .quad 0x00FF00FF00FF00FF, 0x00FF00FF00FF00FF -PQCLEAN_MCELIECE8192128F_SSE_MASK3_1: .quad 0xFF00FF00FF00FF00, 0xFF00FF00FF00FF00 -PQCLEAN_MCELIECE8192128F_SSE_MASK4_0: .quad 0x0000FFFF0000FFFF, 0x0000FFFF0000FFFF -PQCLEAN_MCELIECE8192128F_SSE_MASK4_1: .quad 0xFFFF0000FFFF0000, 0xFFFF0000FFFF0000 -PQCLEAN_MCELIECE8192128F_SSE_MASK5_0: .quad 0x00000000FFFFFFFF, 0x00000000FFFFFFFF -PQCLEAN_MCELIECE8192128F_SSE_MASK5_1: .quad 0xFFFFFFFF00000000, 0xFFFFFFFF00000000 - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/consts.inc b/crypto_kem/mceliece/mceliece8192128f/sse/consts.inc deleted file mode 100644 index 3cbb5885..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/consts.inc +++ /dev/null @@ -1,967 +0,0 @@ -// 64 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CCCC3333CC, 0XCC3333CCCC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966669966999966, 0X9966669966999966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6666666666666666, 0X6666666666666666), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A) -}, -// 128 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC3333CC33CC, 0X33CC33CCCC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3C3C3C3C3C3C3C, 0X3C3C3C3C3C3C3C3C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA5555AAAA5555AA, 0XAA5555AAAA5555AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0XC33C3CC33CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), -}, -// 256 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF0F00FF00F0FF0, 0X0FF0F00FF00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669966969966996, 0X6996699696699669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0X5AA5A55AA55A5AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF0000FFFF00, 0XFF0000FFFF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00F0FF00FF0F00F, 0XF00F0FF00FF0F00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996699696699669, 0X9669966969966996), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33333333CCCCCCCC, 0X33333333CCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA5A55AA55A5AA5, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FFFF0000FF, 0X00FFFF0000FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0XC33CC33CC33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0X0F0FF0F00F0FF0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), -}, -// 512 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966669966999966, 0X6699996699666699), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA5555AA55AA, 0XAA55AA5555AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6699669966996699, 0X9966996699669966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966996699669966, 0X9966996699669966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC3C3C3C33C3C3C3C, 0XC3C3C3C33C3C3C3C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3333CCCC3333CCCC, 0X3333CCCC3333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9999999966666666, 0X6666666699999999), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6666999999996666, 0X9999666666669999), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC33CC3C33C, 0X3CC3C33CC33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6699996699666699, 0X9966669966999966), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9966996699669966, 0X6699669966996699), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969969669699696, 0X6969969669699696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AAAA55AA55, 0X55AA55AAAA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6699669966996699, 0X6699669966996699), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA5A55A5AA5A55A, 0XA55A5AA5A55A5AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3C3C3CC3C3C3C3, 0X3C3C3C3CC3C3C3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC3333CCCC3333, 0XCCCC3333CCCC3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6666666699999999, 0X9999999966666666), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33CC33CC33C, 0X3CC33CC33CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9999666666669999, 0X6666999999996666), -}, -// 1024 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669699696696996, 0X9669699696696996), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AAAA55AA5555AA, 0X55AAAA55AA5555AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF0F00F0FF0F00F, 0X0FF0F00F0FF0F00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55AA55AA55A, 0X5AA55AA55AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCC33333333CCCC, 0X3333CCCCCCCC3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996699669966996, 0X9669966996699669), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CC3C3C3C33C3C, 0XC3C33C3C3C3CC3C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAA55555555, 0XAAAAAAAA55555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA5555AA55AAAA55, 0XAA5555AA55AAAA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00F0FF0F00F0FF0, 0XF00F0FF0F00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966969969669, 0X6996966969969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA55AA55AA5, 0XA55AA55AA55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55555555AAAAAAAA, 0X55555555AAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3333CCCCCCCC3333, 0XCCCC33333333CCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00000000FFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9669966996699669, 0X6996699669966996), -}, -// 2048 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33C3CC3C33C3CC3, 0XC33C3CC3C33C3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X55AA55AA55AA55AA, 0X55AA55AA55AA55AA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F00F0F0F0F, 0X0F0F0F0FF0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CCCC33CC3333CC, 0XCC3333CC33CCCC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555555555555555, 0X5555555555555555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC3C33C3CC3C33C, 0X3CC3C33C3CC3C33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAA55AA55AA55AA55, 0XAA55AA55AA55AA55), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0F0FF0F0F0F0, 0XF0F0F0F00F0F0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF00FF0000FF, 0XFF0000FF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC3333CC33CCCC33, 0X33CCCC33CC3333CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FFFF00, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X9669699669969669), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55A5AA55AA5A55A, 0XA55A5AA55AA5A55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6996966996696996, 0X6996966996696996), -}, -// 4096 -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF00FF00, 0XFF00FF00FF00FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0F0F0F0F0F0, 0XF0F0F0F0F0F0F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCCCCCCCCCCCCCCCC, 0XCCCCCCCCCCCCCCCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAAAAAAAAAAAAAA, 0XAAAAAAAAAAAAAAAA), -} diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/controlbits.c b/crypto_kem/mceliece/mceliece8192128f/sse/controlbits.c deleted file mode 100644 index b639c5d4..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE8192128F_SSE_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE8192128F_SSE_sort_63b(n / 2, x); - PQCLEAN_MCELIECE8192128F_SSE_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE8192128F_SSE_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/controlbits.h b/crypto_kem/mceliece/mceliece8192128f/sse/controlbits.h deleted file mode 100644 index 7a46a4ea..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_CONTROLBITS_H -#define PQCLEAN_MCELIECE8192128F_SSE_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE8192128F_SSE_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE8192128F_SSE_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/crypto_hash.h b/crypto_kem/mceliece/mceliece8192128f/sse/crypto_hash.h deleted file mode 100644 index 1ecbb8bd..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE8192128F_SSE_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/decrypt.c b/crypto_kem/mceliece/mceliece8192128f/sse/decrypt.c deleted file mode 100644 index c1d6283a..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/decrypt.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" - -#include - -static void scaling(vec128 out[][GFBITS], vec128 inv[][GFBITS], const unsigned char *sk, vec128 *recv) { - int i, j; - - vec128 irr_int[ GFBITS ]; - vec128 eval[64][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE8192128F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128F_SSE_fft(eval, irr_int); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(inv[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_inv(tmp, inv[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(inv[0], tmp); - - // - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void scaling_inv(vec128 out[][GFBITS], vec128 inv[][GFBITS], vec128 *recv) { - int i, j; - - for (i = 0; i < 64; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(inv[i][j], recv[i]); - } - } -} - -static void preprocess(vec128 *recv, const unsigned char *s) { - int i; - - recv[0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits(0); - - for (i = 1; i < 64; i++) { - recv[i] = recv[0]; - } - - for (i = 0; i < SYND_BYTES / 16; i++) { - recv[i] = PQCLEAN_MCELIECE8192128F_SSE_load16(s + i * 16); - } -} - -static uint16_t weight(vec128 *v) { - uint16_t i, w = 0; - - for (i = 0; i < 64; i++) { - w += (uint16_t)_mm_popcnt_u64(PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(v[i], 0) ); - w += (uint16_t)_mm_popcnt_u64( PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(v[i], 1) ); - } - - return w; -} - -static uint16_t synd_cmp(vec128 s0[][ GFBITS ], vec128 s1[][ GFBITS ]) { - int i, j; - vec128 diff; - - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_or(PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(s0[0][0], s1[0][0]), - PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(s0[1][0], s1[1][0])); - - for (i = 0; i < 2; i++) { - for (j = 1; j < GFBITS; j++) { - diff = PQCLEAN_MCELIECE8192128F_SSE_vec128_or(diff, PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(s0[i][j], s1[i][j])); - } - } - - return (uint16_t)PQCLEAN_MCELIECE8192128F_SSE_vec128_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE8192128F_SSE_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec128 inv[ 64 ][ GFBITS ]; - vec128 scaled[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - - vec128 error[ 64 ]; - - vec128 s_priv[ 2 ][ GFBITS ]; - vec128 s_priv_cmp[ 2 ][ GFBITS ]; - vec128 locator[ GFBITS ]; - - vec128 recv[ 64 ]; - vec128 allone; - - vec128 bits_int[25][32]; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE8192128F_SSE_load_bits(bits_int, sk + IRR_BYTES); - PQCLEAN_MCELIECE8192128F_SSE_benes(recv, bits_int, 1); - - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE8192128F_SSE_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE8192128F_SSE_bm(locator, s_priv); - - PQCLEAN_MCELIECE8192128F_SSE_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits(1); - - for (i = 0; i < 64; i++) { - error[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_or_reduce(eval[i]); - error[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(error[i], allone); - } - - check_weight = weight(error) ^ SYS_T; - check_weight -= 1; - check_weight >>= 15; - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE8192128F_SSE_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE8192128F_SSE_benes(error, bits_int, 0); - - for (i = 0; i < 64; i++) { - PQCLEAN_MCELIECE8192128F_SSE_store16(e + i * 16, error[i]); - } - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/decrypt.h b/crypto_kem/mceliece/mceliece8192128f/sse/decrypt.h deleted file mode 100644 index 6aba1717..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_DECRYPT_H -#define PQCLEAN_MCELIECE8192128F_SSE_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE8192128F_SSE_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/encrypt.c b/crypto_kem/mceliece/mceliece8192128f/sse/encrypt.c deleted file mode 100644 index f9ac9742..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/encrypt.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -extern void PQCLEAN_MCELIECE8192128F_SSE_syndrome_asm(unsigned char *s, const unsigned char *pk, unsigned char *e); - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq; - - uint16_t ind[ SYS_T ]; - uint64_t e_int[ SYS_N / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes((uint8_t *)ind, sizeof(ind)); - - for (i = 0; i < SYS_T; i++) { - ind[i] &= GFMASK; - } - - for (i = 0; i < SYS_T; i++) { - ind[i] &= GFMASK; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < SYS_N / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < SYS_N / 64; i++) { - PQCLEAN_MCELIECE8192128F_SSE_store8(e + i * 8, e_int[i]); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE8192128F_SSE_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - PQCLEAN_MCELIECE8192128F_SSE_syndrome_asm(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/encrypt.h b/crypto_kem/mceliece/mceliece8192128f/sse/encrypt.h deleted file mode 100644 index a2a937c5..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_ENCRYPT_H -#define PQCLEAN_MCELIECE8192128F_SSE_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE8192128F_SSE_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/fft.c b/crypto_kem/mceliece/mceliece8192128f/sse/fft.c deleted file mode 100644 index 41bae8a3..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/fft.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" -#include "vec128.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec128 *in) { - int i, j, k; - vec128 t; - uint64_t v0, v1; - - const vec128 mask[5][2] = { - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x8888888888888888, 0x8888888888888888), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0xC0C0C0C0C0C0C0C0, 0xC0C0C0C0C0C0C0C0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0xF000F000F000F000, 0xF000F000F000F000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0xFF000000FF000000, 0xFF000000FF000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0xFFFF000000000000, 0xFFFF000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - } - }; - - const vec128 s[5][GFBITS] = { -#include "scalars_2x.inc" - }; - - // - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - v1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[i], 1); - v1 ^= v1 >> 32; - v0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[i], 0); - v0 ^= v1 << 32; - in[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(v0, v1); - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[i], mask[k][0]); - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[i], t); - - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[i], mask[k][1]); - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_srl_2x(t, 1 << k); - in[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[i], t); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(in, in, s[j]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec128 out[][ GFBITS ], const vec128 *in) { - int i, j, k, s, b; - - vec128 tmp[ GFBITS ]; - vec128 t[ GFBITS ]; - vec128 pre[8][ GFBITS ]; - vec128 buf[64]; - - uint64_t v0, v1; - uint64_t consts_ptr = 1; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec128 powers[ 64 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[64] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[8] = {2522, 7827, 7801, 8035, 6897, 8167, 3476, 0}; - - // - - for (j = 0; j < GFBITS; j++) { - t[j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(in[j], in[j]); - } - - for (i = 0; i < 8; i += 2) { - for (j = 0; j < GFBITS; j++) { - v0 = (beta[i + 0] >> j) & 1; - v0 = -v0; - v1 = (beta[i + 1] >> j) & 1; - v1 = -v1; - - tmp[j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(v0, v1); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, t, tmp); - - for (j = 0; j < GFBITS; j++) { - pre[i + 0][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(tmp[j], tmp[j]); - pre[i + 1][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(tmp[j], tmp[j]); - } - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[i], 0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[i], 0) ^ PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(pre[6][i], 0)); - - buf[1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[0], pre[0][i]); - buf[16] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[0], pre[4][i]); - buf[3] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[1], pre[1][i]); - buf[48] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[16], pre[5][i]); - buf[49] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[48], pre[0][i]); - buf[2] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[0], pre[1][i]); - buf[51] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[49], pre[1][i]); - buf[6] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[2], pre[2][i]); - buf[50] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[51], pre[0][i]); - buf[7] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[6], pre[0][i]); - buf[54] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[50], pre[2][i]); - buf[5] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[7], pre[1][i]); - buf[55] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[54], pre[0][i]); - buf[53] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[55], pre[1][i]); - buf[4] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[0], pre[2][i]); - buf[52] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[53], pre[0][i]); - buf[12] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[4], pre[3][i]); - buf[60] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[52], pre[3][i]); - buf[13] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[12], pre[0][i]); - buf[61] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[60], pre[0][i]); - buf[15] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[13], pre[1][i]); - buf[63] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[61], pre[1][i]); - buf[14] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[15], pre[0][i]); - buf[62] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[63], pre[0][i]); - buf[10] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[14], pre[2][i]); - buf[58] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[62], pre[2][i]); - buf[11] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[10], pre[0][i]); - buf[59] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[58], pre[0][i]); - buf[9] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[11], pre[1][i]); - buf[57] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[59], pre[1][i]); - buf[56] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[57], pre[0][i]); - buf[8] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[0], pre[3][i]); - buf[40] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[56], pre[4][i]); - buf[24] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[8], pre[4][i]); - buf[41] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[40], pre[0][i]); - buf[25] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[24], pre[0][i]); - buf[43] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[41], pre[1][i]); - buf[27] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[25], pre[1][i]); - buf[42] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[43], pre[0][i]); - buf[26] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[27], pre[0][i]); - buf[46] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[42], pre[2][i]); - buf[30] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[26], pre[2][i]); - buf[47] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[46], pre[0][i]); - buf[31] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[30], pre[0][i]); - buf[45] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[47], pre[1][i]); - buf[29] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[31], pre[1][i]); - buf[44] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[45], pre[0][i]); - buf[28] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[29], pre[0][i]); - buf[36] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[44], pre[3][i]); - buf[20] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[28], pre[3][i]); - buf[37] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[36], pre[0][i]); - buf[21] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[20], pre[0][i]); - buf[39] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[37], pre[1][i]); - buf[23] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[21], pre[1][i]); - buf[38] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[39], pre[0][i]); - buf[22] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[23], pre[0][i]); - buf[34] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[38], pre[2][i]); - buf[18] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[22], pre[2][i]); - buf[35] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[34], pre[0][i]); - buf[19] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[18], pre[0][i]); - buf[33] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[35], pre[1][i]); - buf[17] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[19], pre[1][i]); - buf[32] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[33], pre[0][i]); - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp(buf); - - for (j = 0; j < 64; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 0; i <= 5; i++) { - s = 1 << i; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, out[k + s], (vec128 *) consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(out[k ][b], tmp[b]); - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(out[k + s][b], out[k][b]); - } - } - } - - consts_ptr += (1 << i); - } - - // adding the part contributed by x^128 - - for (i = 0; i < 64; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(out[i][b], powers[i][b]); - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE8192128F_SSE_fft(vec128 out[][GFBITS], vec128 *in) { - radix_conversions(in); - butterflies(out, in); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/fft.h b/crypto_kem/mceliece/mceliece8192128f/sse/fft.h deleted file mode 100644 index dc46b5ef..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_FFT_H -#define PQCLEAN_MCELIECE8192128F_SSE_FFT_H -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - - -#include "params.h" -#include "vec128.h" -#include - -void PQCLEAN_MCELIECE8192128F_SSE_fft(vec128 /*out*/[][GFBITS], vec128 * /*in*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.c b/crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.c deleted file mode 100644 index 4c7448ae..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec128 in[][ GFBITS ]) { - int i, j, k; - vec128 t, x0, x1; - - uint64_t v0, v1, v2, v3; - - const vec128 mask[6][2] = { - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x2222222222222222, 0x2222222222222222), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x4444444444444444, 0x4444444444444444) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x0C0C0C0C0C0C0C0C, 0x0C0C0C0C0C0C0C0C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x3030303030303030, 0x3030303030303030) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x00F000F000F000F0, 0x00F000F000F000F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x0F000F000F000F00, 0x0F000F000F000F00) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x0000FF000000FF00, 0x0000FF000000FF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x00FF000000FF0000, 0x00FF000000FF0000) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x00000000FFFF0000, 0x00000000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x0000FFFF00000000, 0x0000FFFF00000000) - }, - { - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0xFFFFFFFF00000000, 0xFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0x00000000FFFFFFFF, 0x00000000FFFFFFFF) - } - }; - - const vec128 s[6][2][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(in[1], in[1], s[j][1]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[0][i], mask[k][0]); - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[0][i], mask[k][1]); - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(t, 1 << k); - in[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[0][i], t); - - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[1][i], mask[k][0]); - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[1][i], t); - - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_and(in[1][i], mask[k][1]); - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(t, 1 << k); - in[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[1][i], t); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - x0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(in[0][i], in[1][i]); - x1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(in[0][i], in[1][i]); - - x1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE8192128F_SSE_vec128_srl_2x(x0, 32)); - x1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(x1, PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(x1, 32)); - - in[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(x0, x1); - in[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(x0, x1); - } - } - - for (i = 0; i < GFBITS; i++) { - v0 = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[0][i], 0); - v1 = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[0][i], 1); - v2 = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[1][i], 0); - v3 = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[1][i], 1); - - v3 ^= v2 ^= v1; - - in[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(v0, v1); - in[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(v2, v3); - } - - } -} - -static void butterflies_tr(vec128 out[][ GFBITS ], vec128 in[][ GFBITS ]) { - int i, j, k, s, b; - - vec128 tmp0[ GFBITS ]; - vec128 tmp1[ GFBITS ]; - vec128 tmp[ GFBITS ]; - - vec128 pre[ 6 ][ GFBITS ]; - vec128 buf[ 64 ]; - - const vec128 consts[ 64 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 64; - - const unsigned char reversal[] = { - 0, 32, 16, 48, 8, 40, 24, 56, - 4, 36, 20, 52, 12, 44, 28, 60, - 2, 34, 18, 50, 10, 42, 26, 58, - 6, 38, 22, 54, 14, 46, 30, 62, - 1, 33, 17, 49, 9, 41, 25, 57, - 5, 37, 21, 53, 13, 45, 29, 61, - 3, 35, 19, 51, 11, 43, 27, 59, - 7, 39, 23, 55, 15, 47, 31, 63 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 5; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 64; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[k][b], in[k + s][b]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[k + s][b], tmp[b]); - } - } - } - } - - for (j = 0; j < 64; j += 2) { - for (i = 0; i < GFBITS; i++) { - tmp0[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(in[j][i], in[j + 1][i]); - tmp1[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(in[j][i], in[j + 1][i]); - } - - for (b = 0; b < GFBITS; b++) { - tmp0[b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(tmp0[b], tmp1[b]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, tmp0, consts[0]); - - for (b = 0; b < GFBITS; b++) { - tmp1[b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(tmp1[b], tmp[b]); - } - - for (i = 0; i < GFBITS; i++) { - in[j + 0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(tmp0[i], tmp1[i]); - in[j + 1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(tmp0[i], tmp1[i]); - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 64; k++) { - buf[k] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE8192128F_SSE_transpose_64x128_sp(buf); - - pre[0][i] = buf[32]; - buf[33] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[33], buf[32]); - pre[1][i] = buf[33]; - buf[35] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[35], buf[33]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[35]); - buf[34] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[34], buf[35]); - pre[2][i] = buf[34]; - buf[38] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[38], buf[34]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[38]); - buf[39] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[39], buf[38]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[39]); - buf[37] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[37], buf[39]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[37]); - buf[36] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[36], buf[37]); - pre[3][i] = buf[36]; - buf[44] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[44], buf[36]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[44]); - buf[45] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[45], buf[44]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[45]); - buf[47] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[47], buf[45]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[47]); - buf[46] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[46], buf[47]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[46]); - buf[42] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[42], buf[46]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[42]); - buf[43] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[43], buf[42]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[43]); - buf[41] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[41], buf[43]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[41]); - buf[40] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[40], buf[41]); - pre[4][i] = buf[40]; - buf[56] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[56], buf[40]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[56]); - buf[57] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[57], buf[56]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[57]); - buf[59] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[59], buf[57]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[59]); - buf[58] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[58], buf[59]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[58]); - buf[62] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[62], buf[58]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[62]); - buf[63] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[63], buf[62]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[63]); - buf[61] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[61], buf[63]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[61]); - buf[60] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[60], buf[61]); - pre[3][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[3][i], buf[60]); - buf[52] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[52], buf[60]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[52]); - buf[53] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[53], buf[52]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[53]); - buf[55] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[55], buf[53]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[55]); - buf[54] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[54], buf[55]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[54]); - buf[50] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[50], buf[54]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[50]); - buf[51] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[51], buf[50]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[51]); - buf[49] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[49], buf[51]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[49]); - buf[48] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[48], buf[49]); - pre[5][i] = buf[48]; - buf[16] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[16], buf[48]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[16]); - buf[17] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[17], buf[16]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[17]); - buf[19] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[19], buf[17]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[19]); - buf[18] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[18], buf[19]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[18]); - buf[22] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[22], buf[18]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[22]); - buf[23] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[23], buf[22]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[23]); - buf[21] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[21], buf[23]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[21]); - buf[20] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[20], buf[21]); - pre[3][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[3][i], buf[20]); - buf[28] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[28], buf[20]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[28]); - buf[29] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[29], buf[28]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[29]); - buf[31] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[31], buf[29]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[31]); - buf[30] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[30], buf[31]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[30]); - buf[26] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[26], buf[30]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[26]); - buf[27] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[27], buf[26]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[27]); - buf[25] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[25], buf[27]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[25]); - buf[24] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[24], buf[25]); - pre[4][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[4][i], buf[24]); - buf[8] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[8], buf[24]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[8]); - buf[9] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[9], buf[8]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[9]); - buf[11] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[11], buf[9]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[11]); - buf[10] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[10], buf[11]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[10]); - buf[14] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[14], buf[10]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[14]); - buf[15] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[15], buf[14]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[15]); - buf[13] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[13], buf[15]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[13]); - buf[12] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[12], buf[13]); - pre[3][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[3][i], buf[12]); - buf[4] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[4], buf[12]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[4]); - buf[5] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[5], buf[4]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[5]); - buf[7] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[7], buf[5]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[7]); - buf[6] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[6], buf[7]); - pre[2][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[2][i], buf[6]); - buf[2] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[2], buf[6]); - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[2]); - buf[3] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[3], buf[2]); - pre[1][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[1][i], buf[3]); - buf[1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[1], buf[3]); - - pre[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(pre[0][i], buf[1]); - out[0][i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(buf[0], buf[1]); - - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(out[1], pre[0], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, pre[i], tmp); - - for (b = 0; b < GFBITS; b++) { - out[1][b] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(out[1][b], tmp[b]); - } - } -} - -void PQCLEAN_MCELIECE8192128F_SSE_fft_tr(vec128 out[][GFBITS], vec128 in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.h b/crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.h deleted file mode 100644 index 1f94e182..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_FFT_TR_H -#define PQCLEAN_MCELIECE8192128F_SSE_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec128.h" - -void PQCLEAN_MCELIECE8192128F_SSE_fft_tr(vec128 /*out*/[][GFBITS], vec128 /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/gf.c b/crypto_kem/mceliece/mceliece8192128f/sse/gf.c deleted file mode 100644 index f7ca22d9..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128F_SSE_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE8192128F_SSE_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE8192128F_SSE_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE8192128F_SSE_gf_inv(gf in) { - return PQCLEAN_MCELIECE8192128F_SSE_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE8192128F_SSE_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE8192128F_SSE_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE8192128F_SSE_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE8192128F_SSE_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE8192128F_SSE_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE8192128F_SSE_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/gf.h b/crypto_kem/mceliece/mceliece8192128f/sse/gf.h deleted file mode 100644 index c698c95e..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/gf.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_GF_H -#define PQCLEAN_MCELIECE8192128F_SSE_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE8192128F_SSE_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE8192128F_SSE_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE8192128F_SSE_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE8192128F_SSE_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE8192128F_SSE_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128F_SSE_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/operations.c b/crypto_kem/mceliece/mceliece8192128f/sse/operations.c deleted file mode 100644 index bf390a94..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE8192128F_SSE_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE8192128F_SSE_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128F_SSE_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE8192128F_SSE_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128F_SSE_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE8192128F_SSE_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE8192128F_SSE_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE8192128F_SSE_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE8192128F_SSE_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE8192128F_SSE_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE8192128F_SSE_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE8192128F_SSE_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE8192128F_SSE_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/params.h b/crypto_kem/mceliece/mceliece8192128f/sse/params.h deleted file mode 100644 index 80e3101b..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_PARAMS_H -#define PQCLEAN_MCELIECE8192128F_SSE_PARAMS_H - -#define GFBITS 13 -#define SYS_N 8192 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.c b/crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.c deleted file mode 100644 index 3201854f..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.c +++ /dev/null @@ -1,342 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "util.h" - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec128 in[][GFBITS]) { - int i, j, r; - uint64_t u = 0; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - u = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[i][j], 0); - for (r = 0; r < 64; r++) { - out[i * 128 + 0 * 64 + r] <<= 1; - out[i * 128 + 0 * 64 + r] |= (u >> r) & 1; - } - u = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in[i][j], 1); - for (r = 0; r < 64; r++) { - out[i * 128 + 1 * 64 + r] <<= 1; - out[i * 128 + 1 * 64 + r] |= (u >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec128 out0[][GFBITS], vec128 out1[][GFBITS], const uint64_t *in) { - int i, j, k, r; - uint64_t u[2] = {0}; - - for (i = 0; i < 64; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> (j + GFBITS)) & 1; - } - } - - out1[i][j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(u[0], u[1]); - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (k = 0; k < 2; k++) { - for (r = 63; r >= 0; r--) { - u[k] <<= 1; - u[k] |= (in[i * 128 + k * 64 + r] >> j) & 1; - } - } - - out0[i][GFBITS - 1 - j] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(u[0], u[1]); - } - } -} - -static void transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - return (int)_tzcnt_u64(in); -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ 128 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask(k, ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask(k, ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - - -#define NBLOCKS_H ((SYS_N + 127) / 128) -#define NBLOCKS_I ((GFBITS * SYS_T + 63) / 64) -int PQCLEAN_MCELIECE8192128F_SSE_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ 128 ]; - - uint64_t mask; - - vec128 irr_int[ GFBITS ]; - - vec128 consts[ 64 ][ GFBITS ]; - vec128 eval[ 64 ][ GFBITS ]; - vec128 prod[ 64 ][ GFBITS ]; - vec128 tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE8192128F_SSE_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128F_SSE_fft(eval, irr_int); - - PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(prod[0], eval[0]); - - for (i = 1; i < 64; i++) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_inv(tmp, prod[63]); - - for (i = 62; i >= 0; i--) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE8192128F_SSE_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < NBLOCKS_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < NBLOCKS_H; j++) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ 2 * j + 0 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(prod[ j ][ k ], 0); - mat[ i * GFBITS + k ][ 2 * j + 1 ] = PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(prod[ j ][ k ], 1); - } - } - } - - // gaussian elimination - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < 128; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < 128; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - for (k = row + 1; k < GFBITS * SYS_T; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < 128; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = NBLOCKS_I; j < 128; j++) { - PQCLEAN_MCELIECE8192128F_SSE_store8(pk, mat[i][j]); - pk += 8; - } - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.h b/crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.h deleted file mode 100644 index 2acc1ef3..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_PK_GEN_H -#define PQCLEAN_MCELIECE8192128F_SSE_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE8192128F_SSE_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/powers.inc b/crypto_kem/mceliece/mceliece8192128f/sse/powers.inc deleted file mode 100644 index 7048cbb9..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/powers.inc +++ /dev/null @@ -1,960 +0,0 @@ -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF0F00FF00F, 0XF00FF00F0FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XAAAA55555555AAAA, 0X5555AAAAAAAA5555), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCC33CC33CC33CC33, 0XCC33CC33CC33CC33), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X9696969669696969, 0X9696969669696969), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FF00FF00FF00FF0, 0XF00FF00FF00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA55AA55A5AA55AA5, 0XA55AA55A5AA55AA5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC33CC33C3CC33CC3, 0X3CC33CC3C33CC33C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5A5A5A5A5A, 0X5A5A5A5A5A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A55A5A5A5A, 0XA5A5A5A55A5A5A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0FF0F00F0FF0F0, 0XF0F00F0FF0F00F0F) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5AA55AA5A55AA55A, 0X5AA55AA5A55AA55A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CC33CC3C33CC33C, 0XC33CC33C3CC33CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A55A5AA5A55A5A, 0XA5A55A5AA5A55A5A), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF0000FFFF, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33CC33CC33CC33CC, 0X33CC33CC33CC33CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00F0FF00FF0, 0X0FF00FF0F00FF00F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X6969696996969696, 0X6969696996969696), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XA5A5A5A5A5A5A5A5, 0XA5A5A5A5A5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5A5A5A5AA5A5A5A5, 0X5A5A5A5AA5A5A5A5), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X5555AAAAAAAA5555, 0XAAAA55555555AAAA), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF00FF00FF00FF00F, 0X0FF00FF00FF00FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F00F0FF0F00F0F, 0X0F0FF0F00F0FF0F0) -} diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/scalars_2x.inc b/crypto_kem/mceliece/mceliece8192128f/sse/scalars_2x.inc deleted file mode 100644 index f7f45386..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/scalars_2x.inc +++ /dev/null @@ -1,75 +0,0 @@ -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000) -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000) -} diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/scalars_4x.inc b/crypto_kem/mceliece/mceliece8192128f/sse/scalars_4x.inc deleted file mode 100644 index 6d31f3f3..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/scalars_4x.inc +++ /dev/null @@ -1,181 +0,0 @@ -{{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C3CF30C0000C003, 0X0C0F0FCF0F0CF330), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0CCCC3F333C0000C, 0XF0000FC33C3CCF3C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X03C33F33FCC0C03C, 0X3C0F3F00C3C300FC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0003000F3C03C0C0, 0X3C33CCC0F0F3CC30), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF33FF33030CF03F0, 0XC0CFFFFFCCCC30CC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0CF0303300F0CCC0, 0X3FC3F3CCFFFC033F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF3F0C0CC0FF3CC0, 0XFC3030CCCCC0CFCF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XCF3CF0FF003FC000, 0X0FCF0C00CCF333C3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XC00FF3CF0303F300, 0XCFFCF33000CFF030), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CCC0CC00CF0CC00, 0X00CFFCC330F30FCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF30FFC3C3FCCFC00, 0X3CCC3FCCC0F3FFF3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3F0FC3F0CCF0C000, 0XF00F0C3FC003C0FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3000FF33CCF0F000, 0X330CCFCC03C0FC33), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F30C33CF03F03F, 0X3F30CC0C000F3FCC), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F30FC00C3300FF, 0XFC3CF030FC3FFF03), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF3CC3CF3F3FCF33F, 0X33FFFCFF0CCF3CC3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C0FC0FC303C3F3C, 0X003CFF33C3CC30CF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFC30CF303F3FF00F, 0XCFF3CF33C00F3003), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X33300C0CC3300CF3, 0X00F3CC0CF3003CCF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3C030CF3F03FF3F3, 0X3C000CFCCC3C3333), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X3CCC03FCCC3FFC03, 0XF3CF03C0FCF03FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X033C3C3CF0003FC3, 0X3F3C3CF0C330330C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFC0FF00F0FF0F03, 0X33CCFCC0FF0033F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF3F30CF003FCC303, 0X33C300C0F0C003F3), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X30CFCFC3CC0F3000, 0X003FF0003F00C00C), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0CF30CCF3FCFCC0F, 0XCFF3C3033F030FFF), -}}, -{{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F0FF0F000000F, 0XF0FFFFFFF0F00F00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFF0000F0, 0X00FFF0FFFF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00FF00000F00, 0X00FF00000F0F0FFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF000F00F0FF000, 0XF000F0000F00FF0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF0000F0FF000F0, 0XFF000000FFF00000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF000FFF000000, 0XF0FF000FF00F0FF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0F0FFF0F0FF000, 0X0F0F0F00FF000F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0FFF0000000F0000, 0X0F0F00F0F0F0F000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F000F0FFF00F00, 0X00F00F00F00F000F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F00FF00F00F000, 0X00F0F0F00000FFF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF000F000F00000, 0XFFFFFF0FF00F0FFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F00F000FF00000, 0X0F0FFFF00FFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FF0F0000F000, 0XFFFF0F0FFF0FFF00), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0F0F00FF0FF0FFFF, 0XFF0F0F00F000F0FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF000F0F00F00FF0F, 0X0FFFFFFFFF00000F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000FFFF0FFF0FF0F, 0XF0FFFF000F00F0FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F00FFF00000FF0, 0X0F0000F00FFF0FFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFF0000FFFF00F, 0X0F0F0F00FF0F000F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFF0FFF0000FFFF0, 0X000F0F0FFFF0F000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0F0F0000F0F0F00, 0XF0FFFF0F00F0FF0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00F000F0F00FFF00, 0X0F0F000F0F00F0FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0FF0F0FFF00F0FF, 0X0000F0FF00FF0F0F), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XF0FF0FFFF0F0F0FF, 0X00FFFF0FF0FFF0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFFFFFFF0, 0X0000000F00F0FFF0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFF0F0FF000F0F, 0XF0F00000FF00F0F0), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000FFFF0000FFF00, 0X0F0F0FFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF0000000000FF, 0X00FF00FF00FF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FF00FF0000, 0X0000FFFF000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000FF0000, 0X00FFFF00FF000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00000000FF0000, 0XFFFFFF0000FF00FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFF000000, 0X0000FFFF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF0000FFFFFF0000, 0XFF00FF0000FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFFFFFF00FF00, 0X0000FF0000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFF00FFFF00FFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF0000FF000000, 0X00FFFF00000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FF000000, 0X0000FF00FF00FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF00FFFF000000, 0XFF0000FFFFFF0000), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00FF00FF00FF, 0XFF0000FFFFFF00FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FFFF000000FF00, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00FFFFFFFF00, 0XFFFF000000FFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF00FFFFFF, 0X00FFFF00FF0000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00FF0000FF0000FF, 0XFFFFFF00FFFFFF00), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FF00FFFF, 0X00FFFF00FFFF00FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF000000FFFFFF00, 0X0000FFFF00FF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000000000000FFFF, 0X000000FFFF000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFF00FF00FFFF0000, 0XFF00FF0000FF00FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00FFFF00FFFF, 0X00FF0000000000FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFF00FF00, 0XFF00FFFF00FF00FF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF00FFFF0000FF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FF00000000FF, 0X0000FF000000FFFF), -}}, -{{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFF0000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFF0000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFFFFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000FFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF000000000000, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFF00000000, 0XFFFF0000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFF0000, 0X00000000FFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000FFFFFFFFFFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFF00000000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF0000FFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X000000000000FFFF, 0X0000FFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFF0000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF0000FFFF, 0X0000FFFFFFFF0000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFF0000FFFFFFFF, 0X0000FFFFFFFFFFFF), -}}, -{{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X00000000FFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFF00000000, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X00000000FFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFF00000000), -}}, -{{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), -}, -{ - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0X0000000000000000, 0XFFFFFFFFFFFFFFFF), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0X0000000000000000), - PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(0XFFFFFFFFFFFFFFFF, 0XFFFFFFFFFFFFFFFF), -}} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.c b/crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.c deleted file mode 100644 index 2e773826..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE8192128F_SSE_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE8192128F_SSE_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE8192128F_SSE_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE8192128F_SSE_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE8192128F_SSE_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE8192128F_SSE_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE8192128F_SSE_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE8192128F_SSE_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.h b/crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.h deleted file mode 100644 index 3c86665b..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_SK_GEN_H -#define PQCLEAN_MCELIECE8192128F_SSE_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE8192128F_SSE_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE8192128F_SSE_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/syndrome_asm.S b/crypto_kem/mceliece/mceliece8192128f/sse/syndrome_asm.S deleted file mode 100644 index 0b53f566..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/syndrome_asm.S +++ /dev/null @@ -1,1449 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: int64 b64 - -# qhasm: int64 synd - -# qhasm: int64 addr - -# qhasm: int64 c - -# qhasm: int64 c_all - -# qhasm: int64 row - -# qhasm: reg128 p - -# qhasm: reg128 e - -# qhasm: reg128 s - -# qhasm: int64 buf_ptr - -# qhasm: stack128 buf - -# qhasm: enter syndrome_asm -.p2align 5 -.global _PQCLEAN_MCELIECE8192128F_SSE_syndrome_asm -.global PQCLEAN_MCELIECE8192128F_SSE_syndrome_asm -_PQCLEAN_MCELIECE8192128F_SSE_syndrome_asm: -PQCLEAN_MCELIECE8192128F_SSE_syndrome_asm: -mov %rsp,%r11 -and $31,%r11 -add $32,%r11 -sub %r11,%rsp - -# qhasm: input_1 += 1357008 -# asm 1: add $1357008,buf_ptr=int64#4 -# asm 2: leaq buf_ptr=%rcx -leaq 0(%rsp),%rcx - -# qhasm: row = 1664 -# asm 1: mov $1664,>row=int64#5 -# asm 2: mov $1664,>row=%r8 -mov $1664,%r8 - -# qhasm: loop: -._loop: - -# qhasm: row -= 1 -# asm 1: sub $1,s=reg128#1 -# asm 2: movdqu 0(s=%xmm0 -movdqu 0(%rsi),%xmm0 - -# qhasm: e = mem128[ input_2 + 208 ] -# asm 1: movdqu 208(e=reg128#2 -# asm 2: movdqu 208(e=%xmm1 -movdqu 208(%rdx),%xmm1 - -# qhasm: s &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 16(p=%xmm1 -movdqu 16(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 224 ] -# asm 1: movdqu 224(e=reg128#3 -# asm 2: movdqu 224(e=%xmm2 -movdqu 224(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 32(p=%xmm1 -movdqu 32(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 240 ] -# asm 1: movdqu 240(e=reg128#3 -# asm 2: movdqu 240(e=%xmm2 -movdqu 240(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 48(p=%xmm1 -movdqu 48(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 256 ] -# asm 1: movdqu 256(e=reg128#3 -# asm 2: movdqu 256(e=%xmm2 -movdqu 256(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 64(p=%xmm1 -movdqu 64(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 272 ] -# asm 1: movdqu 272(e=reg128#3 -# asm 2: movdqu 272(e=%xmm2 -movdqu 272(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 80(p=%xmm1 -movdqu 80(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 288 ] -# asm 1: movdqu 288(e=reg128#3 -# asm 2: movdqu 288(e=%xmm2 -movdqu 288(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 96(p=%xmm1 -movdqu 96(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 304 ] -# asm 1: movdqu 304(e=reg128#3 -# asm 2: movdqu 304(e=%xmm2 -movdqu 304(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 112(p=%xmm1 -movdqu 112(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 320 ] -# asm 1: movdqu 320(e=reg128#3 -# asm 2: movdqu 320(e=%xmm2 -movdqu 320(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 128(p=%xmm1 -movdqu 128(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 336 ] -# asm 1: movdqu 336(e=reg128#3 -# asm 2: movdqu 336(e=%xmm2 -movdqu 336(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 144(p=%xmm1 -movdqu 144(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 352 ] -# asm 1: movdqu 352(e=reg128#3 -# asm 2: movdqu 352(e=%xmm2 -movdqu 352(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 160(p=%xmm1 -movdqu 160(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 368 ] -# asm 1: movdqu 368(e=reg128#3 -# asm 2: movdqu 368(e=%xmm2 -movdqu 368(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 176(p=%xmm1 -movdqu 176(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 384 ] -# asm 1: movdqu 384(e=reg128#3 -# asm 2: movdqu 384(e=%xmm2 -movdqu 384(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 192(p=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 400 ] -# asm 1: movdqu 400(e=reg128#3 -# asm 2: movdqu 400(e=%xmm2 -movdqu 400(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 208(p=%xmm1 -movdqu 208(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 416 ] -# asm 1: movdqu 416(e=reg128#3 -# asm 2: movdqu 416(e=%xmm2 -movdqu 416(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 224(p=%xmm1 -movdqu 224(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 432 ] -# asm 1: movdqu 432(e=reg128#3 -# asm 2: movdqu 432(e=%xmm2 -movdqu 432(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 240(p=%xmm1 -movdqu 240(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 448 ] -# asm 1: movdqu 448(e=reg128#3 -# asm 2: movdqu 448(e=%xmm2 -movdqu 448(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 256(p=%xmm1 -movdqu 256(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 464 ] -# asm 1: movdqu 464(e=reg128#3 -# asm 2: movdqu 464(e=%xmm2 -movdqu 464(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 272(p=%xmm1 -movdqu 272(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 480 ] -# asm 1: movdqu 480(e=reg128#3 -# asm 2: movdqu 480(e=%xmm2 -movdqu 480(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 288(p=%xmm1 -movdqu 288(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 496 ] -# asm 1: movdqu 496(e=reg128#3 -# asm 2: movdqu 496(e=%xmm2 -movdqu 496(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 304(p=%xmm1 -movdqu 304(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 512 ] -# asm 1: movdqu 512(e=reg128#3 -# asm 2: movdqu 512(e=%xmm2 -movdqu 512(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 320(p=%xmm1 -movdqu 320(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 528 ] -# asm 1: movdqu 528(e=reg128#3 -# asm 2: movdqu 528(e=%xmm2 -movdqu 528(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 336(p=%xmm1 -movdqu 336(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 544 ] -# asm 1: movdqu 544(e=reg128#3 -# asm 2: movdqu 544(e=%xmm2 -movdqu 544(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 352(p=%xmm1 -movdqu 352(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 560 ] -# asm 1: movdqu 560(e=reg128#3 -# asm 2: movdqu 560(e=%xmm2 -movdqu 560(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 368(p=%xmm1 -movdqu 368(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 576 ] -# asm 1: movdqu 576(e=reg128#3 -# asm 2: movdqu 576(e=%xmm2 -movdqu 576(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 384(p=%xmm1 -movdqu 384(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 592 ] -# asm 1: movdqu 592(e=reg128#3 -# asm 2: movdqu 592(e=%xmm2 -movdqu 592(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 400(p=%xmm1 -movdqu 400(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 608 ] -# asm 1: movdqu 608(e=reg128#3 -# asm 2: movdqu 608(e=%xmm2 -movdqu 608(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 416(p=%xmm1 -movdqu 416(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 624 ] -# asm 1: movdqu 624(e=reg128#3 -# asm 2: movdqu 624(e=%xmm2 -movdqu 624(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 432(p=%xmm1 -movdqu 432(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 640 ] -# asm 1: movdqu 640(e=reg128#3 -# asm 2: movdqu 640(e=%xmm2 -movdqu 640(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 448(p=%xmm1 -movdqu 448(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 656 ] -# asm 1: movdqu 656(e=reg128#3 -# asm 2: movdqu 656(e=%xmm2 -movdqu 656(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 464(p=%xmm1 -movdqu 464(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 672 ] -# asm 1: movdqu 672(e=reg128#3 -# asm 2: movdqu 672(e=%xmm2 -movdqu 672(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 480(p=%xmm1 -movdqu 480(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 688 ] -# asm 1: movdqu 688(e=reg128#3 -# asm 2: movdqu 688(e=%xmm2 -movdqu 688(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 496(p=%xmm1 -movdqu 496(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 704 ] -# asm 1: movdqu 704(e=reg128#3 -# asm 2: movdqu 704(e=%xmm2 -movdqu 704(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 512(p=%xmm1 -movdqu 512(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 720 ] -# asm 1: movdqu 720(e=reg128#3 -# asm 2: movdqu 720(e=%xmm2 -movdqu 720(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 528(p=%xmm1 -movdqu 528(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 736 ] -# asm 1: movdqu 736(e=reg128#3 -# asm 2: movdqu 736(e=%xmm2 -movdqu 736(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 544(p=%xmm1 -movdqu 544(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 752 ] -# asm 1: movdqu 752(e=reg128#3 -# asm 2: movdqu 752(e=%xmm2 -movdqu 752(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 560(p=%xmm1 -movdqu 560(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 768 ] -# asm 1: movdqu 768(e=reg128#3 -# asm 2: movdqu 768(e=%xmm2 -movdqu 768(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 576(p=%xmm1 -movdqu 576(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 784 ] -# asm 1: movdqu 784(e=reg128#3 -# asm 2: movdqu 784(e=%xmm2 -movdqu 784(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 592(p=%xmm1 -movdqu 592(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 800 ] -# asm 1: movdqu 800(e=reg128#3 -# asm 2: movdqu 800(e=%xmm2 -movdqu 800(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 608(p=%xmm1 -movdqu 608(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 816 ] -# asm 1: movdqu 816(e=reg128#3 -# asm 2: movdqu 816(e=%xmm2 -movdqu 816(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 624(p=%xmm1 -movdqu 624(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 832 ] -# asm 1: movdqu 832(e=reg128#3 -# asm 2: movdqu 832(e=%xmm2 -movdqu 832(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 640(p=%xmm1 -movdqu 640(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 848 ] -# asm 1: movdqu 848(e=reg128#3 -# asm 2: movdqu 848(e=%xmm2 -movdqu 848(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 656(p=%xmm1 -movdqu 656(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 864 ] -# asm 1: movdqu 864(e=reg128#3 -# asm 2: movdqu 864(e=%xmm2 -movdqu 864(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 672(p=%xmm1 -movdqu 672(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 880 ] -# asm 1: movdqu 880(e=reg128#3 -# asm 2: movdqu 880(e=%xmm2 -movdqu 880(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 688(p=%xmm1 -movdqu 688(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 896 ] -# asm 1: movdqu 896(e=reg128#3 -# asm 2: movdqu 896(e=%xmm2 -movdqu 896(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 704(p=%xmm1 -movdqu 704(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 912 ] -# asm 1: movdqu 912(e=reg128#3 -# asm 2: movdqu 912(e=%xmm2 -movdqu 912(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 720(p=%xmm1 -movdqu 720(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 928 ] -# asm 1: movdqu 928(e=reg128#3 -# asm 2: movdqu 928(e=%xmm2 -movdqu 928(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 736(p=%xmm1 -movdqu 736(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 944 ] -# asm 1: movdqu 944(e=reg128#3 -# asm 2: movdqu 944(e=%xmm2 -movdqu 944(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 752(p=%xmm1 -movdqu 752(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 960 ] -# asm 1: movdqu 960(e=reg128#3 -# asm 2: movdqu 960(e=%xmm2 -movdqu 960(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 768(p=%xmm1 -movdqu 768(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 976 ] -# asm 1: movdqu 976(e=reg128#3 -# asm 2: movdqu 976(e=%xmm2 -movdqu 976(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 784(p=%xmm1 -movdqu 784(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 992 ] -# asm 1: movdqu 992(e=reg128#3 -# asm 2: movdqu 992(e=%xmm2 -movdqu 992(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand p=reg128#2 -# asm 2: movdqu 800(p=%xmm1 -movdqu 800(%rsi),%xmm1 - -# qhasm: e = mem128[ input_2 + 1008 ] -# asm 1: movdqu 1008(e=reg128#3 -# asm 2: movdqu 1008(e=%xmm2 -movdqu 1008(%rdx),%xmm2 - -# qhasm: p &= e -# asm 1: pand buf=stack128#1 -# asm 2: movdqa buf=0(%rsp) -movdqa %xmm0,0(%rsp) - -# qhasm: b64 = mem64[ buf_ptr + 0 ] -# asm 1: movq 0(b64=int64#6 -# asm 2: movq 0(b64=%r9 -movq 0(%rcx),%r9 - -# qhasm: c_all = count(b64) -# asm 1: popcnt c_all=int64#6 -# asm 2: popcnt c_all=%r9 -popcnt %r9, %r9 - -# qhasm: b64 = mem64[ buf_ptr + 8 ] -# asm 1: movq 8(b64=int64#7 -# asm 2: movq 8(b64=%rax -movq 8(%rcx),%rax - -# qhasm: c = count(b64) -# asm 1: popcnt c=int64#7 -# asm 2: popcnt c=%rax -popcnt %rax, %rax - -# qhasm: c_all ^= c -# asm 1: xor addr=int64#7 -# asm 2: mov addr=%rax -mov %r8,%rax - -# qhasm: (uint64) addr >>= 3 -# asm 1: shr $3,synd=int64#8 -# asm 2: movzbq 0(synd=%r10 -movzbq 0(%rax),%r10 - -# qhasm: synd <<= 1 -# asm 1: shl $1,s=reg128#1 -# asm 2: movdqu 0(s=%xmm0 -movdqu 0(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(e=reg128#2 -# asm 2: movdqu 0(e=%xmm1 -movdqu 0(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 16(s=%xmm0 -movdqu 16(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 16 ] -# asm 1: movdqu 16(e=reg128#2 -# asm 2: movdqu 16(e=%xmm1 -movdqu 16(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 32(s=%xmm0 -movdqu 32(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 32 ] -# asm 1: movdqu 32(e=reg128#2 -# asm 2: movdqu 32(e=%xmm1 -movdqu 32(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 48(s=%xmm0 -movdqu 48(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 48 ] -# asm 1: movdqu 48(e=reg128#2 -# asm 2: movdqu 48(e=%xmm1 -movdqu 48(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 64(s=%xmm0 -movdqu 64(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 64 ] -# asm 1: movdqu 64(e=reg128#2 -# asm 2: movdqu 64(e=%xmm1 -movdqu 64(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 80(s=%xmm0 -movdqu 80(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 80 ] -# asm 1: movdqu 80(e=reg128#2 -# asm 2: movdqu 80(e=%xmm1 -movdqu 80(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 96(s=%xmm0 -movdqu 96(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 96 ] -# asm 1: movdqu 96(e=reg128#2 -# asm 2: movdqu 96(e=%xmm1 -movdqu 96(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 112(s=%xmm0 -movdqu 112(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 112 ] -# asm 1: movdqu 112(e=reg128#2 -# asm 2: movdqu 112(e=%xmm1 -movdqu 112(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 128(s=%xmm0 -movdqu 128(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 128 ] -# asm 1: movdqu 128(e=reg128#2 -# asm 2: movdqu 128(e=%xmm1 -movdqu 128(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 144(s=%xmm0 -movdqu 144(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 144 ] -# asm 1: movdqu 144(e=reg128#2 -# asm 2: movdqu 144(e=%xmm1 -movdqu 144(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 160(s=%xmm0 -movdqu 160(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 160 ] -# asm 1: movdqu 160(e=reg128#2 -# asm 2: movdqu 160(e=%xmm1 -movdqu 160(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 176(s=%xmm0 -movdqu 176(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 176 ] -# asm 1: movdqu 176(e=reg128#2 -# asm 2: movdqu 176(e=%xmm1 -movdqu 176(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor s=reg128#1 -# asm 2: movdqu 192(s=%xmm0 -movdqu 192(%rdi),%xmm0 - -# qhasm: e = mem128[ input_2 + 192 ] -# asm 1: movdqu 192(e=reg128#2 -# asm 2: movdqu 192(e=%xmm1 -movdqu 192(%rdx),%xmm1 - -# qhasm: s ^= e -# asm 1: pxor mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK5_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK5_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK5_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK5_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK5_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK5_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK4_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK4_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK4_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK4_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK4_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK4_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK4_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK4_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK3_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK3_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK3_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK3_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK3_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK3_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK3_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK3_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 128 ] -# asm 1: movdqu 128(x1=reg128#8 -# asm 2: movdqu 128(x1=%xmm7 -movdqu 128(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 256 ] -# asm 1: movdqu 256(x2=reg128#9 -# asm 2: movdqu 256(x2=%xmm8 -movdqu 256(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 384 ] -# asm 1: movdqu 384(x3=reg128#10 -# asm 2: movdqu 384(x3=%xmm9 -movdqu 384(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 512 ] -# asm 1: movdqu 512(x4=reg128#11 -# asm 2: movdqu 512(x4=%xmm10 -movdqu 512(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 640 ] -# asm 1: movdqu 640(x5=reg128#12 -# asm 2: movdqu 640(x5=%xmm11 -movdqu 640(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 768 ] -# asm 1: movdqu 768(x6=reg128#13 -# asm 2: movdqu 768(x6=%xmm12 -movdqu 768(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 896 ] -# asm 1: movdqu 896(x7=reg128#14 -# asm 2: movdqu 896(x7=%xmm13 -movdqu 896(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 16(x0=%xmm6 -movdqu 16(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x2=reg128#9 -# asm 2: movdqu 272(x2=%xmm8 -movdqu 272(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x3=reg128#10 -# asm 2: movdqu 400(x3=%xmm9 -movdqu 400(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x4=reg128#11 -# asm 2: movdqu 528(x4=%xmm10 -movdqu 528(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x5=reg128#12 -# asm 2: movdqu 656(x5=%xmm11 -movdqu 656(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x6=reg128#13 -# asm 2: movdqu 784(x6=%xmm12 -movdqu 784(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x7=reg128#14 -# asm 2: movdqu 912(x7=%xmm13 -movdqu 912(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 16 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 32(x0=%xmm6 -movdqu 32(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x1=reg128#8 -# asm 2: movdqu 160(x1=%xmm7 -movdqu 160(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x3=reg128#10 -# asm 2: movdqu 416(x3=%xmm9 -movdqu 416(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x4=reg128#11 -# asm 2: movdqu 544(x4=%xmm10 -movdqu 544(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x5=reg128#12 -# asm 2: movdqu 672(x5=%xmm11 -movdqu 672(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x6=reg128#13 -# asm 2: movdqu 800(x6=%xmm12 -movdqu 800(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x7=reg128#14 -# asm 2: movdqu 928(x7=%xmm13 -movdqu 928(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 32 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 48(x0=%xmm6 -movdqu 48(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x1=reg128#8 -# asm 2: movdqu 176(x1=%xmm7 -movdqu 176(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x2=reg128#9 -# asm 2: movdqu 304(x2=%xmm8 -movdqu 304(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x4=reg128#11 -# asm 2: movdqu 560(x4=%xmm10 -movdqu 560(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x5=reg128#12 -# asm 2: movdqu 688(x5=%xmm11 -movdqu 688(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x6=reg128#13 -# asm 2: movdqu 816(x6=%xmm12 -movdqu 816(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x7=reg128#14 -# asm 2: movdqu 944(x7=%xmm13 -movdqu 944(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 48 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 64(x0=%xmm6 -movdqu 64(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x1=reg128#8 -# asm 2: movdqu 192(x1=%xmm7 -movdqu 192(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x2=reg128#9 -# asm 2: movdqu 320(x2=%xmm8 -movdqu 320(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x3=reg128#10 -# asm 2: movdqu 448(x3=%xmm9 -movdqu 448(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x5=reg128#12 -# asm 2: movdqu 704(x5=%xmm11 -movdqu 704(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x6=reg128#13 -# asm 2: movdqu 832(x6=%xmm12 -movdqu 832(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x7=reg128#14 -# asm 2: movdqu 960(x7=%xmm13 -movdqu 960(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 64 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 80(x0=%xmm6 -movdqu 80(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x1=reg128#8 -# asm 2: movdqu 208(x1=%xmm7 -movdqu 208(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x2=reg128#9 -# asm 2: movdqu 336(x2=%xmm8 -movdqu 336(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x3=reg128#10 -# asm 2: movdqu 464(x3=%xmm9 -movdqu 464(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x4=reg128#11 -# asm 2: movdqu 592(x4=%xmm10 -movdqu 592(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x6=reg128#13 -# asm 2: movdqu 848(x6=%xmm12 -movdqu 848(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x7=reg128#14 -# asm 2: movdqu 976(x7=%xmm13 -movdqu 976(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 80 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 96(x0=%xmm6 -movdqu 96(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x1=reg128#8 -# asm 2: movdqu 224(x1=%xmm7 -movdqu 224(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x2=reg128#9 -# asm 2: movdqu 352(x2=%xmm8 -movdqu 352(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x3=reg128#10 -# asm 2: movdqu 480(x3=%xmm9 -movdqu 480(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x4=reg128#11 -# asm 2: movdqu 608(x4=%xmm10 -movdqu 608(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x5=reg128#12 -# asm 2: movdqu 736(x5=%xmm11 -movdqu 736(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x7=reg128#14 -# asm 2: movdqu 992(x7=%xmm13 -movdqu 992(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm13,%xmm15 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm11,%xmm15 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#15 -# asm 2: vpsrld $16,v01=%xmm14 -vpsrld $16,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm12,%xmm15 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm8,%xmm15 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#16 -# asm 2: vpslld $16,v10=%xmm15 -vpslld $16,%xmm9,%xmm15 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm14,%xmm15 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#14 -# asm 2: vpsrlw $8,v01=%xmm13 -vpsrlw $8,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm10,%xmm15 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm8,%xmm15 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#13 -# asm 2: vpsrlw $8,v01=%xmm12 -vpsrlw $8,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#16 -# asm 2: vpsllw $8,v10=%xmm15 -vpsllw $8,%xmm7,%xmm15 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 96 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 112(x0=%xmm6 -movdqu 112(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x1=reg128#8 -# asm 2: movdqu 240(x1=%xmm7 -movdqu 240(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x2=reg128#9 -# asm 2: movdqu 368(x2=%xmm8 -movdqu 368(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x3=reg128#10 -# asm 2: movdqu 496(x3=%xmm9 -movdqu 496(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x4=reg128#11 -# asm 2: movdqu 624(x4=%xmm10 -movdqu 624(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x5=reg128#12 -# asm 2: movdqu 752(x5=%xmm11 -movdqu 752(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x6=reg128#13 -# asm 2: movdqu 880(x6=%xmm12 -movdqu 880(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: 2x v10 = x4 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm10,%xmm15 - -# qhasm: 2x v01 = x0 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#7 -# asm 2: vpsrlq $32,v01=%xmm6 -vpsrlq $32,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: 2x v10 = x5 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm11,%xmm15 - -# qhasm: 2x v01 = x1 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#8 -# asm 2: vpsrlq $32,v01=%xmm7 -vpsrlq $32,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: 2x v10 = x6 << 32 -# asm 1: vpsllq $32,v10=reg128#16 -# asm 2: vpsllq $32,v10=%xmm15 -vpsllq $32,%xmm12,%xmm15 - -# qhasm: 2x v01 = x2 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#9 -# asm 2: vpsrlq $32,v01=%xmm8 -vpsrlq $32,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#1 -# asm 2: vpand v00=%xmm0 -vpand %xmm0,%xmm9,%xmm0 - -# qhasm: 2x v10 = x7 << 32 -# asm 1: vpsllq $32,v10=reg128#13 -# asm 2: vpsllq $32,v10=%xmm12 -vpsllq $32,%xmm13,%xmm12 - -# qhasm: 2x v01 = x3 unsigned>> 32 -# asm 1: vpsrlq $32,v01=reg128#10 -# asm 2: vpsrlq $32,v01=%xmm9 -vpsrlq $32,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: x3 = v00 | v10 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm12,%xmm0,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: 4x v10 = x2 << 16 -# asm 1: vpslld $16,v10=reg128#13 -# asm 2: vpslld $16,v10=%xmm12 -vpslld $16,%xmm11,%xmm12 - -# qhasm: 4x v01 = x0 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#14 -# asm 2: vpsrld $16,v01=%xmm13 -vpsrld $16,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: 4x v10 = x3 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm0,%xmm13 - -# qhasm: 4x v01 = x1 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#11 -# asm 2: vpsrld $16,v01=%xmm10 -vpsrld $16,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: x1 = v00 | v10 -# asm 1: vpor x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: 4x v10 = x6 << 16 -# asm 1: vpslld $16,v10=reg128#14 -# asm 2: vpslld $16,v10=%xmm13 -vpslld $16,%xmm8,%xmm13 - -# qhasm: 4x v01 = x4 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#7 -# asm 2: vpsrld $16,v01=%xmm6 -vpsrld $16,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#3 -# asm 2: vpand v00=%xmm2 -vpand %xmm2,%xmm7,%xmm2 - -# qhasm: 4x v10 = x7 << 16 -# asm 1: vpslld $16,v10=reg128#9 -# asm 2: vpslld $16,v10=%xmm8 -vpslld $16,%xmm1,%xmm8 - -# qhasm: 4x v01 = x5 unsigned>> 16 -# asm 1: vpsrld $16,v01=reg128#8 -# asm 2: vpsrld $16,v01=%xmm7 -vpsrld $16,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: x5 = v00 | v10 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm8,%xmm2,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: 8x v10 = x1 << 8 -# asm 1: vpsllw $8,v10=reg128#8 -# asm 2: vpsllw $8,v10=%xmm7 -vpsllw $8,%xmm12,%xmm7 - -# qhasm: 8x v01 = x0 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#9 -# asm 2: vpsrlw $8,v01=%xmm8 -vpsrlw $8,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: x0 = v00 | v10 -# asm 1: vpor x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: 8x v10 = x3 << 8 -# asm 1: vpsllw $8,v10=reg128#10 -# asm 2: vpsllw $8,v10=%xmm9 -vpsllw $8,%xmm0,%xmm9 - -# qhasm: 8x v01 = x2 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#12 -# asm 2: vpsrlw $8,v01=%xmm11 -vpsrlw $8,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: x2 = v00 | v10 -# asm 1: vpor x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: 8x v10 = x5 << 8 -# asm 1: vpsllw $8,v10=reg128#12 -# asm 2: vpsllw $8,v10=%xmm11 -vpsllw $8,%xmm2,%xmm11 - -# qhasm: 8x v01 = x4 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#11 -# asm 2: vpsrlw $8,v01=%xmm10 -vpsrlw $8,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: x4 = v00 | v10 -# asm 1: vpor x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#5 -# asm 2: vpand v00=%xmm4 -vpand %xmm4,%xmm6,%xmm4 - -# qhasm: 8x v10 = x7 << 8 -# asm 1: vpsllw $8,v10=reg128#11 -# asm 2: vpsllw $8,v10=%xmm10 -vpsllw $8,%xmm1,%xmm10 - -# qhasm: 8x v01 = x6 unsigned>> 8 -# asm 1: vpsrlw $8,v01=reg128#7 -# asm 2: vpsrlw $8,v01=%xmm6 -vpsrlw $8,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: x6 = v00 | v10 -# asm 1: vpor x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm10,%xmm4,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 112 ] = x0 -# asm 1: movdqu mask0=reg128#1 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK2_0(%rip),>mask0=%xmm0 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK2_0(%rip),%xmm0 - -# qhasm: mask1 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK2_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK2_1(%rip),>mask1=reg128#2 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK2_1(%rip),>mask1=%xmm1 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK2_1(%rip),%xmm1 - -# qhasm: mask2 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK1_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK1_0(%rip),>mask2=reg128#3 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK1_0(%rip),>mask2=%xmm2 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK1_0(%rip),%xmm2 - -# qhasm: mask3 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK1_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK1_1(%rip),>mask3=reg128#4 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK1_1(%rip),>mask3=%xmm3 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK1_1(%rip),%xmm3 - -# qhasm: mask4 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK0_0 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK0_0(%rip),>mask4=reg128#5 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK0_0(%rip),>mask4=%xmm4 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK0_0(%rip),%xmm4 - -# qhasm: mask5 aligned= mem128[ PQCLEAN_MCELIECE8192128F_SSE_MASK0_1 ] -# asm 1: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK0_1(%rip),>mask5=reg128#6 -# asm 2: movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK0_1(%rip),>mask5=%xmm5 -movdqa PQCLEAN_MCELIECE8192128F_SSE_MASK0_1(%rip),%xmm5 - -# qhasm: x0 = mem128[ input_0 + 0 ] -# asm 1: movdqu 0(x0=reg128#7 -# asm 2: movdqu 0(x0=%xmm6 -movdqu 0(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 16 ] -# asm 1: movdqu 16(x1=reg128#8 -# asm 2: movdqu 16(x1=%xmm7 -movdqu 16(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 32 ] -# asm 1: movdqu 32(x2=reg128#9 -# asm 2: movdqu 32(x2=%xmm8 -movdqu 32(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 48 ] -# asm 1: movdqu 48(x3=reg128#10 -# asm 2: movdqu 48(x3=%xmm9 -movdqu 48(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 64 ] -# asm 1: movdqu 64(x4=reg128#11 -# asm 2: movdqu 64(x4=%xmm10 -movdqu 64(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 80 ] -# asm 1: movdqu 80(x5=reg128#12 -# asm 2: movdqu 80(x5=%xmm11 -movdqu 80(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 96 ] -# asm 1: movdqu 96(x6=reg128#13 -# asm 2: movdqu 96(x6=%xmm12 -movdqu 96(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 112 ] -# asm 1: movdqu 112(x7=reg128#14 -# asm 2: movdqu 112(x7=%xmm13 -movdqu 112(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 0 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 128(x0=%xmm6 -movdqu 128(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 144 ] -# asm 1: movdqu 144(x1=reg128#8 -# asm 2: movdqu 144(x1=%xmm7 -movdqu 144(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 160 ] -# asm 1: movdqu 160(x2=reg128#9 -# asm 2: movdqu 160(x2=%xmm8 -movdqu 160(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 176 ] -# asm 1: movdqu 176(x3=reg128#10 -# asm 2: movdqu 176(x3=%xmm9 -movdqu 176(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 192 ] -# asm 1: movdqu 192(x4=reg128#11 -# asm 2: movdqu 192(x4=%xmm10 -movdqu 192(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 208 ] -# asm 1: movdqu 208(x5=reg128#12 -# asm 2: movdqu 208(x5=%xmm11 -movdqu 208(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 224 ] -# asm 1: movdqu 224(x6=reg128#13 -# asm 2: movdqu 224(x6=%xmm12 -movdqu 224(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 240 ] -# asm 1: movdqu 240(x7=reg128#14 -# asm 2: movdqu 240(x7=%xmm13 -movdqu 240(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 128 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 256(x0=%xmm6 -movdqu 256(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 272 ] -# asm 1: movdqu 272(x1=reg128#8 -# asm 2: movdqu 272(x1=%xmm7 -movdqu 272(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 288 ] -# asm 1: movdqu 288(x2=reg128#9 -# asm 2: movdqu 288(x2=%xmm8 -movdqu 288(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 304 ] -# asm 1: movdqu 304(x3=reg128#10 -# asm 2: movdqu 304(x3=%xmm9 -movdqu 304(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 320 ] -# asm 1: movdqu 320(x4=reg128#11 -# asm 2: movdqu 320(x4=%xmm10 -movdqu 320(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 336 ] -# asm 1: movdqu 336(x5=reg128#12 -# asm 2: movdqu 336(x5=%xmm11 -movdqu 336(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 352 ] -# asm 1: movdqu 352(x6=reg128#13 -# asm 2: movdqu 352(x6=%xmm12 -movdqu 352(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 368 ] -# asm 1: movdqu 368(x7=reg128#14 -# asm 2: movdqu 368(x7=%xmm13 -movdqu 368(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 256 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 384(x0=%xmm6 -movdqu 384(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 400 ] -# asm 1: movdqu 400(x1=reg128#8 -# asm 2: movdqu 400(x1=%xmm7 -movdqu 400(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 416 ] -# asm 1: movdqu 416(x2=reg128#9 -# asm 2: movdqu 416(x2=%xmm8 -movdqu 416(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 432 ] -# asm 1: movdqu 432(x3=reg128#10 -# asm 2: movdqu 432(x3=%xmm9 -movdqu 432(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 448 ] -# asm 1: movdqu 448(x4=reg128#11 -# asm 2: movdqu 448(x4=%xmm10 -movdqu 448(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 464 ] -# asm 1: movdqu 464(x5=reg128#12 -# asm 2: movdqu 464(x5=%xmm11 -movdqu 464(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 480 ] -# asm 1: movdqu 480(x6=reg128#13 -# asm 2: movdqu 480(x6=%xmm12 -movdqu 480(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 496 ] -# asm 1: movdqu 496(x7=reg128#14 -# asm 2: movdqu 496(x7=%xmm13 -movdqu 496(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 384 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 512(x0=%xmm6 -movdqu 512(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 528 ] -# asm 1: movdqu 528(x1=reg128#8 -# asm 2: movdqu 528(x1=%xmm7 -movdqu 528(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 544 ] -# asm 1: movdqu 544(x2=reg128#9 -# asm 2: movdqu 544(x2=%xmm8 -movdqu 544(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 560 ] -# asm 1: movdqu 560(x3=reg128#10 -# asm 2: movdqu 560(x3=%xmm9 -movdqu 560(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 576 ] -# asm 1: movdqu 576(x4=reg128#11 -# asm 2: movdqu 576(x4=%xmm10 -movdqu 576(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 592 ] -# asm 1: movdqu 592(x5=reg128#12 -# asm 2: movdqu 592(x5=%xmm11 -movdqu 592(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 608 ] -# asm 1: movdqu 608(x6=reg128#13 -# asm 2: movdqu 608(x6=%xmm12 -movdqu 608(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 624 ] -# asm 1: movdqu 624(x7=reg128#14 -# asm 2: movdqu 624(x7=%xmm13 -movdqu 624(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 512 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 640(x0=%xmm6 -movdqu 640(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 656 ] -# asm 1: movdqu 656(x1=reg128#8 -# asm 2: movdqu 656(x1=%xmm7 -movdqu 656(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 672 ] -# asm 1: movdqu 672(x2=reg128#9 -# asm 2: movdqu 672(x2=%xmm8 -movdqu 672(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 688 ] -# asm 1: movdqu 688(x3=reg128#10 -# asm 2: movdqu 688(x3=%xmm9 -movdqu 688(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 704 ] -# asm 1: movdqu 704(x4=reg128#11 -# asm 2: movdqu 704(x4=%xmm10 -movdqu 704(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 720 ] -# asm 1: movdqu 720(x5=reg128#12 -# asm 2: movdqu 720(x5=%xmm11 -movdqu 720(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 736 ] -# asm 1: movdqu 736(x6=reg128#13 -# asm 2: movdqu 736(x6=%xmm12 -movdqu 736(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 752 ] -# asm 1: movdqu 752(x7=reg128#14 -# asm 2: movdqu 752(x7=%xmm13 -movdqu 752(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 640 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 768(x0=%xmm6 -movdqu 768(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 784 ] -# asm 1: movdqu 784(x1=reg128#8 -# asm 2: movdqu 784(x1=%xmm7 -movdqu 784(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 800 ] -# asm 1: movdqu 800(x2=reg128#9 -# asm 2: movdqu 800(x2=%xmm8 -movdqu 800(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 816 ] -# asm 1: movdqu 816(x3=reg128#10 -# asm 2: movdqu 816(x3=%xmm9 -movdqu 816(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 832 ] -# asm 1: movdqu 832(x4=reg128#11 -# asm 2: movdqu 832(x4=%xmm10 -movdqu 832(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 848 ] -# asm 1: movdqu 848(x5=reg128#12 -# asm 2: movdqu 848(x5=%xmm11 -movdqu 848(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 864 ] -# asm 1: movdqu 864(x6=reg128#13 -# asm 2: movdqu 864(x6=%xmm12 -movdqu 864(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 880 ] -# asm 1: movdqu 880(x7=reg128#14 -# asm 2: movdqu 880(x7=%xmm13 -movdqu 880(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm13,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#14 -# asm 2: vpand v11=%xmm13 -vpand %xmm1,%xmm13,%xmm13 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#13 -# asm 2: vpor x3=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#10 -# asm 2: vpor x7=%xmm9 -vpor %xmm13,%xmm9,%xmm9 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#14 -# asm 2: vpand v00=%xmm13 -vpand %xmm2,%xmm14,%xmm13 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#15 -# asm 2: vpand v01=%xmm14 -vpand %xmm3,%xmm14,%xmm14 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#14 -# asm 2: vpor x0=%xmm13 -vpor %xmm15,%xmm13,%xmm13 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm14,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm2,%xmm10,%xmm14 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm3,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#15 -# asm 2: vpor x1=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm12,%xmm10,%xmm10 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm6,%xmm12 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#13 -# asm 2: vpor x4=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm2,%xmm9,%xmm15 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm3,%xmm9,%xmm9 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm15,%xmm8,%xmm8 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#8 -# asm 2: vpor x7=%xmm7 -vpor %xmm9,%xmm7,%xmm7 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm13,%xmm9 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm14,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm5,%xmm13,%xmm13 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#15 -# asm 2: vpand v11=%xmm14 -vpand %xmm5,%xmm14,%xmm14 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm15,%xmm9,%xmm9 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#14 -# asm 2: vpor x1=%xmm13 -vpor %xmm14,%xmm13,%xmm13 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm4,%xmm11,%xmm14 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#15 -# asm 2: vpor x2=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#11 -# asm 2: vpor x3=%xmm10 -vpor %xmm10,%xmm11,%xmm10 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm4,%xmm12,%xmm11 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm8,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#13 -# asm 2: vpand v01=%xmm12 -vpand %xmm5,%xmm12,%xmm12 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm5,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#12 -# asm 2: vpor x4=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#9 -# asm 2: vpor x5=%xmm8 -vpor %xmm8,%xmm12,%xmm8 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm4,%xmm6,%xmm12 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm4,%xmm7,%xmm15 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#8 -# asm 2: vpand v11=%xmm7 -vpand %xmm5,%xmm7,%xmm7 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#13 -# asm 2: vpor x6=%xmm12 -vpor %xmm15,%xmm12,%xmm12 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#7 -# asm 2: vpor x7=%xmm6 -vpor %xmm7,%xmm6,%xmm6 - -# qhasm: mem128[ input_0 + 768 ] = x0 -# asm 1: movdqu x0=reg128#7 -# asm 2: movdqu 896(x0=%xmm6 -movdqu 896(%rdi),%xmm6 - -# qhasm: x1 = mem128[ input_0 + 912 ] -# asm 1: movdqu 912(x1=reg128#8 -# asm 2: movdqu 912(x1=%xmm7 -movdqu 912(%rdi),%xmm7 - -# qhasm: x2 = mem128[ input_0 + 928 ] -# asm 1: movdqu 928(x2=reg128#9 -# asm 2: movdqu 928(x2=%xmm8 -movdqu 928(%rdi),%xmm8 - -# qhasm: x3 = mem128[ input_0 + 944 ] -# asm 1: movdqu 944(x3=reg128#10 -# asm 2: movdqu 944(x3=%xmm9 -movdqu 944(%rdi),%xmm9 - -# qhasm: x4 = mem128[ input_0 + 960 ] -# asm 1: movdqu 960(x4=reg128#11 -# asm 2: movdqu 960(x4=%xmm10 -movdqu 960(%rdi),%xmm10 - -# qhasm: x5 = mem128[ input_0 + 976 ] -# asm 1: movdqu 976(x5=reg128#12 -# asm 2: movdqu 976(x5=%xmm11 -movdqu 976(%rdi),%xmm11 - -# qhasm: x6 = mem128[ input_0 + 992 ] -# asm 1: movdqu 992(x6=reg128#13 -# asm 2: movdqu 992(x6=%xmm12 -movdqu 992(%rdi),%xmm12 - -# qhasm: x7 = mem128[ input_0 + 1008 ] -# asm 1: movdqu 1008(x7=reg128#14 -# asm 2: movdqu 1008(x7=%xmm13 -movdqu 1008(%rdi),%xmm13 - -# qhasm: v00 = x0 & mask0 -# asm 1: vpand v00=reg128#15 -# asm 2: vpand v00=%xmm14 -vpand %xmm0,%xmm6,%xmm14 - -# qhasm: v10 = x4 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm10,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm1,%xmm6,%xmm6 - -# qhasm: v11 = x4 & mask1 -# asm 1: vpand v11=reg128#11 -# asm 2: vpand v11=%xmm10 -vpand %xmm1,%xmm10,%xmm10 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x0=reg128#15 -# asm 2: vpor x0=%xmm14 -vpor %xmm15,%xmm14,%xmm14 - -# qhasm: x4 = v01 | v11 -# asm 1: vpor x4=reg128#7 -# asm 2: vpor x4=%xmm6 -vpor %xmm10,%xmm6,%xmm6 - -# qhasm: v00 = x1 & mask0 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm0,%xmm7,%xmm10 - -# qhasm: v10 = x5 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm11,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm1,%xmm7,%xmm7 - -# qhasm: v11 = x5 & mask1 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm1,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x1=reg128#11 -# asm 2: vpor x1=%xmm10 -vpor %xmm15,%xmm10,%xmm10 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#8 -# asm 2: vpor x5=%xmm7 -vpor %xmm11,%xmm7,%xmm7 - -# qhasm: v00 = x2 & mask0 -# asm 1: vpand v00=reg128#12 -# asm 2: vpand v00=%xmm11 -vpand %xmm0,%xmm8,%xmm11 - -# qhasm: v10 = x6 & mask0 -# asm 1: vpand v10=reg128#16 -# asm 2: vpand v10=%xmm15 -vpand %xmm0,%xmm12,%xmm15 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm1,%xmm8,%xmm8 - -# qhasm: v11 = x6 & mask1 -# asm 1: vpand v11=reg128#13 -# asm 2: vpand v11=%xmm12 -vpand %xmm1,%xmm12,%xmm12 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm15,%xmm11,%xmm11 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#9 -# asm 2: vpor x6=%xmm8 -vpor %xmm12,%xmm8,%xmm8 - -# qhasm: v00 = x3 & mask0 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm0,%xmm9,%xmm12 - -# qhasm: v10 = x7 & mask0 -# asm 1: vpand v10=reg128#1 -# asm 2: vpand v10=%xmm0 -vpand %xmm0,%xmm13,%xmm0 - -# qhasm: 2x v10 <<= 4 -# asm 1: psllq $4,v01=reg128#10 -# asm 2: vpand v01=%xmm9 -vpand %xmm1,%xmm9,%xmm9 - -# qhasm: v11 = x7 & mask1 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm1,%xmm13,%xmm1 - -# qhasm: 2x v01 unsigned>>= 4 -# asm 1: psrlq $4,x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm12,%xmm0 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm9,%xmm1 - -# qhasm: v00 = x0 & mask2 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm2,%xmm14,%xmm9 - -# qhasm: v10 = x2 & mask2 -# asm 1: vpand v10=reg128#13 -# asm 2: vpand v10=%xmm12 -vpand %xmm2,%xmm11,%xmm12 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#14 -# asm 2: vpand v01=%xmm13 -vpand %xmm3,%xmm14,%xmm13 - -# qhasm: v11 = x2 & mask3 -# asm 1: vpand v11=reg128#12 -# asm 2: vpand v11=%xmm11 -vpand %xmm3,%xmm11,%xmm11 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x0=reg128#10 -# asm 2: vpor x0=%xmm9 -vpor %xmm12,%xmm9,%xmm9 - -# qhasm: x2 = v01 | v11 -# asm 1: vpor x2=reg128#12 -# asm 2: vpor x2=%xmm11 -vpor %xmm11,%xmm13,%xmm11 - -# qhasm: v00 = x1 & mask2 -# asm 1: vpand v00=reg128#13 -# asm 2: vpand v00=%xmm12 -vpand %xmm2,%xmm10,%xmm12 - -# qhasm: v10 = x3 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm0,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm3,%xmm10,%xmm10 - -# qhasm: v11 = x3 & mask3 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm3,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x1=reg128#13 -# asm 2: vpor x1=%xmm12 -vpor %xmm13,%xmm12,%xmm12 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm10,%xmm0 - -# qhasm: v00 = x4 & mask2 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm2,%xmm6,%xmm10 - -# qhasm: v10 = x6 & mask2 -# asm 1: vpand v10=reg128#14 -# asm 2: vpand v10=%xmm13 -vpand %xmm2,%xmm8,%xmm13 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm3,%xmm6,%xmm6 - -# qhasm: v11 = x6 & mask3 -# asm 1: vpand v11=reg128#9 -# asm 2: vpand v11=%xmm8 -vpand %xmm3,%xmm8,%xmm8 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x4=reg128#11 -# asm 2: vpor x4=%xmm10 -vpor %xmm13,%xmm10,%xmm10 - -# qhasm: x6 = v01 | v11 -# asm 1: vpor x6=reg128#7 -# asm 2: vpor x6=%xmm6 -vpor %xmm8,%xmm6,%xmm6 - -# qhasm: v00 = x5 & mask2 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm2,%xmm7,%xmm8 - -# qhasm: v10 = x7 & mask2 -# asm 1: vpand v10=reg128#3 -# asm 2: vpand v10=%xmm2 -vpand %xmm2,%xmm1,%xmm2 - -# qhasm: 2x v10 <<= 2 -# asm 1: psllq $2,v01=reg128#8 -# asm 2: vpand v01=%xmm7 -vpand %xmm3,%xmm7,%xmm7 - -# qhasm: v11 = x7 & mask3 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm3,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 2 -# asm 1: psrlq $2,x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm8,%xmm2 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm7,%xmm1 - -# qhasm: v00 = x0 & mask4 -# asm 1: vpand v00=reg128#4 -# asm 2: vpand v00=%xmm3 -vpand %xmm4,%xmm9,%xmm3 - -# qhasm: v10 = x1 & mask4 -# asm 1: vpand v10=reg128#8 -# asm 2: vpand v10=%xmm7 -vpand %xmm4,%xmm12,%xmm7 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#9 -# asm 2: vpand v01=%xmm8 -vpand %xmm5,%xmm9,%xmm8 - -# qhasm: v11 = x1 & mask5 -# asm 1: vpand v11=reg128#10 -# asm 2: vpand v11=%xmm9 -vpand %xmm5,%xmm12,%xmm9 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x0=reg128#4 -# asm 2: vpor x0=%xmm3 -vpor %xmm7,%xmm3,%xmm3 - -# qhasm: x1 = v01 | v11 -# asm 1: vpor x1=reg128#8 -# asm 2: vpor x1=%xmm7 -vpor %xmm9,%xmm8,%xmm7 - -# qhasm: v00 = x2 & mask4 -# asm 1: vpand v00=reg128#9 -# asm 2: vpand v00=%xmm8 -vpand %xmm4,%xmm11,%xmm8 - -# qhasm: v10 = x3 & mask4 -# asm 1: vpand v10=reg128#10 -# asm 2: vpand v10=%xmm9 -vpand %xmm4,%xmm0,%xmm9 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#12 -# asm 2: vpand v01=%xmm11 -vpand %xmm5,%xmm11,%xmm11 - -# qhasm: v11 = x3 & mask5 -# asm 1: vpand v11=reg128#1 -# asm 2: vpand v11=%xmm0 -vpand %xmm5,%xmm0,%xmm0 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x2=reg128#9 -# asm 2: vpor x2=%xmm8 -vpor %xmm9,%xmm8,%xmm8 - -# qhasm: x3 = v01 | v11 -# asm 1: vpor x3=reg128#1 -# asm 2: vpor x3=%xmm0 -vpor %xmm0,%xmm11,%xmm0 - -# qhasm: v00 = x4 & mask4 -# asm 1: vpand v00=reg128#10 -# asm 2: vpand v00=%xmm9 -vpand %xmm4,%xmm10,%xmm9 - -# qhasm: v10 = x5 & mask4 -# asm 1: vpand v10=reg128#12 -# asm 2: vpand v10=%xmm11 -vpand %xmm4,%xmm2,%xmm11 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#11 -# asm 2: vpand v01=%xmm10 -vpand %xmm5,%xmm10,%xmm10 - -# qhasm: v11 = x5 & mask5 -# asm 1: vpand v11=reg128#3 -# asm 2: vpand v11=%xmm2 -vpand %xmm5,%xmm2,%xmm2 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x4=reg128#10 -# asm 2: vpor x4=%xmm9 -vpor %xmm11,%xmm9,%xmm9 - -# qhasm: x5 = v01 | v11 -# asm 1: vpor x5=reg128#3 -# asm 2: vpor x5=%xmm2 -vpor %xmm2,%xmm10,%xmm2 - -# qhasm: v00 = x6 & mask4 -# asm 1: vpand v00=reg128#11 -# asm 2: vpand v00=%xmm10 -vpand %xmm4,%xmm6,%xmm10 - -# qhasm: v10 = x7 & mask4 -# asm 1: vpand v10=reg128#5 -# asm 2: vpand v10=%xmm4 -vpand %xmm4,%xmm1,%xmm4 - -# qhasm: 2x v10 <<= 1 -# asm 1: psllq $1,v01=reg128#7 -# asm 2: vpand v01=%xmm6 -vpand %xmm5,%xmm6,%xmm6 - -# qhasm: v11 = x7 & mask5 -# asm 1: vpand v11=reg128#2 -# asm 2: vpand v11=%xmm1 -vpand %xmm5,%xmm1,%xmm1 - -# qhasm: 2x v01 unsigned>>= 1 -# asm 1: psrlq $1,x6=reg128#5 -# asm 2: vpor x6=%xmm4 -vpor %xmm4,%xmm10,%xmm4 - -# qhasm: x7 = v01 | v11 -# asm 1: vpor x7=reg128#2 -# asm 2: vpor x7=%xmm1 -vpor %xmm1,%xmm6,%xmm1 - -# qhasm: mem128[ input_0 + 896 ] = x0 -# asm 1: movdqu s2=int64#2 -# asm 2: mov s2=%rsi -mov %rsi,%rsi - -# qhasm: s0 = mem64[ input_0 + 0 ] -# asm 1: movq 0(s0=int64#3 -# asm 2: movq 0(s0=%rdx -movq 0(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(s1=int64#4 -# asm 2: movq 8(s1=%rcx -movq 8(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 16(s0=%rdx -movq 16(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(s1=int64#4 -# asm 2: movq 24(s1=%rcx -movq 24(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 32(s0=%rdx -movq 32(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(s1=int64#4 -# asm 2: movq 40(s1=%rcx -movq 40(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 48(s0=%rdx -movq 48(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(s1=int64#4 -# asm 2: movq 56(s1=%rcx -movq 56(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 64(s0=%rdx -movq 64(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(s1=int64#4 -# asm 2: movq 72(s1=%rcx -movq 72(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 80(s0=%rdx -movq 80(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(s1=int64#4 -# asm 2: movq 88(s1=%rcx -movq 88(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 96(s0=%rdx -movq 96(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(s1=int64#4 -# asm 2: movq 104(s1=%rcx -movq 104(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 112(s0=%rdx -movq 112(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(s1=int64#4 -# asm 2: movq 120(s1=%rcx -movq 120(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 128(s0=%rdx -movq 128(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(s1=int64#4 -# asm 2: movq 136(s1=%rcx -movq 136(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 144(s0=%rdx -movq 144(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(s1=int64#4 -# asm 2: movq 152(s1=%rcx -movq 152(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 160(s0=%rdx -movq 160(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(s1=int64#4 -# asm 2: movq 168(s1=%rcx -movq 168(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 176(s0=%rdx -movq 176(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(s1=int64#4 -# asm 2: movq 184(s1=%rcx -movq 184(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1,s0=int64#3 -# asm 2: movq 192(s0=%rdx -movq 192(%rdi),%rdx - -# qhasm: s1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(s1=int64#4 -# asm 2: movq 200(s1=%rcx -movq 200(%rdi),%rcx - -# qhasm: s0 = (s1 s0) >> 1 -# asm 1: shrd $1,> 1 -# asm 1: shrd $1,>= 1 -# asm 1: shr $1, - -void PQCLEAN_MCELIECE8192128F_SSE_store_i(unsigned char *out, uint64_t in, int i) { - for (int j = 0; j < i; j++) { - out[j] = (in >> (j * 8)) & 0xFF; - } -} - -void PQCLEAN_MCELIECE8192128F_SSE_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE8192128F_SSE_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE8192128F_SSE_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE8192128F_SSE_irr_load(vec128 *out, const unsigned char *in) { - int i, j; - uint64_t v0 = 0, v1 = 0; - uint16_t irr[ SYS_T ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE8192128F_SSE_load2(in + i * 2); - irr[i] &= GFMASK; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 63; j >= 0; j--) { - v0 <<= 1; - v1 <<= 1; - v0 |= (irr[j] >> i) & 1; - v1 |= (irr[j + 64] >> i) & 1; - } - - out[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(v0, v1); - } -} - -void PQCLEAN_MCELIECE8192128F_SSE_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE8192128F_SSE_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_load16(const unsigned char *in) { - return PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x( PQCLEAN_MCELIECE8192128F_SSE_load8(in), PQCLEAN_MCELIECE8192128F_SSE_load8(in + 8) ); -} - -void PQCLEAN_MCELIECE8192128F_SSE_store16(unsigned char *out, vec128 in) { - PQCLEAN_MCELIECE8192128F_SSE_store8(out + 0, PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in, 0)); - PQCLEAN_MCELIECE8192128F_SSE_store8(out + 8, PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(in, 1)); -} diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/util.h b/crypto_kem/mceliece/mceliece8192128f/sse/util.h deleted file mode 100644 index eacc4198..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/util.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_UTIL_H -#define PQCLEAN_MCELIECE8192128F_SSE_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec128.h" - -#include - -void PQCLEAN_MCELIECE8192128F_SSE_store_i(unsigned char *out, uint64_t in, int i); -void PQCLEAN_MCELIECE8192128F_SSE_store2(unsigned char *dest, uint16_t a); -uint16_t PQCLEAN_MCELIECE8192128F_SSE_load2(const unsigned char *src); -uint32_t PQCLEAN_MCELIECE8192128F_SSE_load4(const unsigned char *src); -void PQCLEAN_MCELIECE8192128F_SSE_irr_load(vec128 *out, const unsigned char *in); -void PQCLEAN_MCELIECE8192128F_SSE_store8(unsigned char *out, uint64_t in); -uint64_t PQCLEAN_MCELIECE8192128F_SSE_load8(const unsigned char *in); -vec128 PQCLEAN_MCELIECE8192128F_SSE_load16(const unsigned char *in); - -void PQCLEAN_MCELIECE8192128F_SSE_store16(unsigned char *out, vec128 in); - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/vec128.c b/crypto_kem/mceliece/mceliece8192128f/sse/vec128.c deleted file mode 100644 index 2ba0c02f..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/vec128.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - -#include "vec128.h" - -#include "params.h" - - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(uint16_t a) { - return _mm_set1_epi16(a); -} - -int PQCLEAN_MCELIECE8192128F_SSE_vec128_testz(vec128 a) { - return _mm_testz_si128(a, a); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_setzero(void) { - return _mm_setzero_si128(); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_and(vec128 a, vec128 b) { - return _mm_and_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(vec128 a, vec128 b) { - return _mm_xor_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_or(vec128 a, vec128 b) { - return _mm_or_si128(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(vec128 a, int s) { - return _mm_slli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_srl_2x(vec128 a, int s) { - return _mm_srli_epi64(a, s); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(uint64_t a0, uint64_t a1) { - return _mm_set_epi64x(a1, a0); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(vec128 a, vec128 b) { - return _mm_unpacklo_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(vec128 a, vec128 b) { - return _mm_unpackhi_epi64(a, b); -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits(uint64_t a) { - return _mm_set1_epi64x(-a); -} - -void PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(vec128 *dest, const vec128 *src) { - int i; - - for (i = 0; i < GFBITS; i++) { - dest[i] = src[i]; - } -} - -void PQCLEAN_MCELIECE8192128F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b) { - int i; - - for (i = 0; i < GFBITS; i++) { - c[i] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(a[i], b[i]); - } -} - -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_or_reduce(const vec128 *a) { - int i; - vec128 ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret = PQCLEAN_MCELIECE8192128F_SSE_vec128_or(ret, a[i]); - } - - return ret; -} - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g) { - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul_asm(h, f, g, 16); -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(vec128 *out, const vec128 *in) { - int i; - vec128 result[GFBITS], t; - - t = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[11], in[12]); - - result[0] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[0], in[11]); - result[1] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[7], t); - result[2] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[1], in[7]); - result[3] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[8], t); - result[4] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[2], in[7]); - result[4] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(result[4], in[8]); - result[4] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(result[4], t); - result[5] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[7], in[9]); - result[6] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[3], in[8]); - result[6] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(result[6], in[9]); - result[6] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(result[6], in[12]); - result[7] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[8], in[10]); - result[8] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[4], in[9]); - result[8] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(result[8], in[10]); - result[9] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[9], in[11]); - result[10] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[5], in[10]); - result[10] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(result[10], in[11]); - result[11] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[10], in[12]); - result[12] = PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(in[6], t); - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE8192128F_SSE_vec128_inv(vec128 *out, const vec128 *in) { - vec128 tmp_11[ GFBITS ]; - vec128 tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(out, in); - - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, tmp_11); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, tmp_1111); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); - PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/vec128.h b/crypto_kem/mceliece/mceliece8192128f/sse/vec128.h deleted file mode 100644 index 4e9f4941..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/vec128.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_SSE_VEC128_H -#define PQCLEAN_MCELIECE8192128F_SSE_VEC128_H -/* - This file is for functions related to 128-bit vectors - including functions for bitsliced field operations -*/ - - -#include "params.h" - -#include -#include - -typedef __m128i vec128; - -// this needs to be a macro, because -// _mm_extract_epi64 requires a literal int argument. -#define PQCLEAN_MCELIECE8192128F_SSE_vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i))) - -int PQCLEAN_MCELIECE8192128F_SSE_vec128_testz(vec128 a); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_set1_16b(uint16_t a); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_setzero(void); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_and(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_xor(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_or(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_sll_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_srl_2x(vec128 a, int s); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_set2x(uint64_t a0, uint64_t a1); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_low(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_unpack_high(vec128 a, vec128 b); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_setbits(uint64_t a); -void PQCLEAN_MCELIECE8192128F_SSE_vec128_copy(vec128 *dest, const vec128 *src); -void PQCLEAN_MCELIECE8192128F_SSE_vec128_add(vec128 *c, const vec128 *a, const vec128 *b); -vec128 PQCLEAN_MCELIECE8192128F_SSE_vec128_or_reduce(const vec128 *a); - -extern void PQCLEAN_MCELIECE8192128F_SSE_vec128_mul_asm(vec128 *, vec128 *, const vec128 *, int); - -/* bitsliced field multiplications */ -void PQCLEAN_MCELIECE8192128F_SSE_vec128_mul(vec128 *h, vec128 *f, const vec128 *g); - -void PQCLEAN_MCELIECE8192128F_SSE_vec128_sq(vec128 *out, const vec128 *in); -void PQCLEAN_MCELIECE8192128F_SSE_vec128_inv(vec128 *out, const vec128 *in); -#endif diff --git a/crypto_kem/mceliece/mceliece8192128f/sse/vec128_mul_asm.S b/crypto_kem/mceliece/mceliece8192128f/sse/vec128_mul_asm.S deleted file mode 100644 index 81eed5e7..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/sse/vec128_mul_asm.S +++ /dev/null @@ -1,2127 +0,0 @@ - -# qhasm: int64 input_0 - -# qhasm: int64 input_1 - -# qhasm: int64 input_2 - -# qhasm: int64 input_3 - -# qhasm: int64 input_4 - -# qhasm: int64 input_5 - -# qhasm: stack64 input_6 - -# qhasm: stack64 input_7 - -# qhasm: int64 caller_r11 - -# qhasm: int64 caller_r12 - -# qhasm: int64 caller_r13 - -# qhasm: int64 caller_r14 - -# qhasm: int64 caller_r15 - -# qhasm: int64 caller_rbx - -# qhasm: int64 caller_rbp - -# qhasm: reg128 a0 - -# qhasm: reg128 a1 - -# qhasm: reg128 a2 - -# qhasm: reg128 a3 - -# qhasm: reg128 a4 - -# qhasm: reg128 a5 - -# qhasm: reg128 a6 - -# qhasm: reg128 a7 - -# qhasm: reg128 a8 - -# qhasm: reg128 a9 - -# qhasm: reg128 a10 - -# qhasm: reg128 a11 - -# qhasm: reg128 a12 - -# qhasm: reg128 b0 - -# qhasm: reg128 b1 - -# qhasm: reg128 r0 - -# qhasm: reg128 r1 - -# qhasm: reg128 r2 - -# qhasm: reg128 r3 - -# qhasm: reg128 r4 - -# qhasm: reg128 r5 - -# qhasm: reg128 r6 - -# qhasm: reg128 r7 - -# qhasm: reg128 r8 - -# qhasm: reg128 r9 - -# qhasm: reg128 r10 - -# qhasm: reg128 r11 - -# qhasm: reg128 r12 - -# qhasm: reg128 r13 - -# qhasm: reg128 r14 - -# qhasm: reg128 r15 - -# qhasm: reg128 r16 - -# qhasm: reg128 r17 - -# qhasm: reg128 r18 - -# qhasm: reg128 r19 - -# qhasm: reg128 r20 - -# qhasm: reg128 r21 - -# qhasm: reg128 r22 - -# qhasm: reg128 r23 - -# qhasm: reg128 r24 - -# qhasm: reg128 r - -# qhasm: enter vec128_mul_asm -.p2align 5 -.global _PQCLEAN_MCELIECE8192128F_SSE_vec128_mul_asm -.global PQCLEAN_MCELIECE8192128F_SSE_vec128_mul_asm -_PQCLEAN_MCELIECE8192128F_SSE_vec128_mul_asm: -PQCLEAN_MCELIECE8192128F_SSE_vec128_mul_asm: -mov %rsp,%r11 -and $31,%r11 -add $0,%r11 -sub %r11,%rsp - -# qhasm: b0 = mem128[ input_2 + 0 ] -# asm 1: movdqu 0(b0=reg128#1 -# asm 2: movdqu 0(b0=%xmm0 -movdqu 0(%rdx),%xmm0 - -# qhasm: a12 = mem128[ input_1 + 192 ] -# asm 1: movdqu 192(a12=reg128#2 -# asm 2: movdqu 192(a12=%xmm1 -movdqu 192(%rsi),%xmm1 - -# qhasm: r12 = a12 & b0 -# asm 1: vpand r12=reg128#3 -# asm 2: vpand r12=%xmm2 -vpand %xmm0,%xmm1,%xmm2 - -# qhasm: r13 = a12 & mem128[input_2 + 16] -# asm 1: vpand 16(r13=reg128#4 -# asm 2: vpand 16(r13=%xmm3 -vpand 16(%rdx),%xmm1,%xmm3 - -# qhasm: r14 = a12 & mem128[input_2 + 32] -# asm 1: vpand 32(r14=reg128#5 -# asm 2: vpand 32(r14=%xmm4 -vpand 32(%rdx),%xmm1,%xmm4 - -# qhasm: r15 = a12 & mem128[input_2 + 48] -# asm 1: vpand 48(r15=reg128#6 -# asm 2: vpand 48(r15=%xmm5 -vpand 48(%rdx),%xmm1,%xmm5 - -# qhasm: r16 = a12 & mem128[input_2 + 64] -# asm 1: vpand 64(r16=reg128#7 -# asm 2: vpand 64(r16=%xmm6 -vpand 64(%rdx),%xmm1,%xmm6 - -# qhasm: r17 = a12 & mem128[input_2 + 80] -# asm 1: vpand 80(r17=reg128#8 -# asm 2: vpand 80(r17=%xmm7 -vpand 80(%rdx),%xmm1,%xmm7 - -# qhasm: r18 = a12 & mem128[input_2 + 96] -# asm 1: vpand 96(r18=reg128#9 -# asm 2: vpand 96(r18=%xmm8 -vpand 96(%rdx),%xmm1,%xmm8 - -# qhasm: r19 = a12 & mem128[input_2 + 112] -# asm 1: vpand 112(r19=reg128#10 -# asm 2: vpand 112(r19=%xmm9 -vpand 112(%rdx),%xmm1,%xmm9 - -# qhasm: r20 = a12 & mem128[input_2 + 128] -# asm 1: vpand 128(r20=reg128#11 -# asm 2: vpand 128(r20=%xmm10 -vpand 128(%rdx),%xmm1,%xmm10 - -# qhasm: r21 = a12 & mem128[input_2 + 144] -# asm 1: vpand 144(r21=reg128#12 -# asm 2: vpand 144(r21=%xmm11 -vpand 144(%rdx),%xmm1,%xmm11 - -# qhasm: r22 = a12 & mem128[input_2 + 160] -# asm 1: vpand 160(r22=reg128#13 -# asm 2: vpand 160(r22=%xmm12 -vpand 160(%rdx),%xmm1,%xmm12 - -# qhasm: r23 = a12 & mem128[input_2 + 176] -# asm 1: vpand 176(r23=reg128#14 -# asm 2: vpand 176(r23=%xmm13 -vpand 176(%rdx),%xmm1,%xmm13 - -# qhasm: r24 = a12 & mem128[input_2 + 192] -# asm 1: vpand 192(r24=reg128#2 -# asm 2: vpand 192(r24=%xmm1 -vpand 192(%rdx),%xmm1,%xmm1 - -# qhasm: r15 ^= r24 -# asm 1: pxor r11=reg128#2 -# asm 2: movdqa r11=%xmm1 -movdqa %xmm1,%xmm1 - -# qhasm: a11 = mem128[ input_1 + 176 ] -# asm 1: movdqu 176(a11=reg128#15 -# asm 2: movdqu 176(a11=%xmm14 -movdqu 176(%rsi),%xmm14 - -# qhasm: r = a11 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r22 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r23 ^= r -# asm 1: pxor r10=reg128#14 -# asm 2: movdqa r10=%xmm13 -movdqa %xmm13,%xmm13 - -# qhasm: a10 = mem128[ input_1 + 160 ] -# asm 1: movdqu 160(a10=reg128#15 -# asm 2: movdqu 160(a10=%xmm14 -movdqu 160(%rsi),%xmm14 - -# qhasm: r = a10 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r21 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r22 ^= r -# asm 1: pxor r9=reg128#13 -# asm 2: movdqa r9=%xmm12 -movdqa %xmm12,%xmm12 - -# qhasm: a9 = mem128[ input_1 + 144 ] -# asm 1: movdqu 144(a9=reg128#15 -# asm 2: movdqu 144(a9=%xmm14 -movdqu 144(%rsi),%xmm14 - -# qhasm: r = a9 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r20 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r21 ^= r -# asm 1: pxor r8=reg128#12 -# asm 2: movdqa r8=%xmm11 -movdqa %xmm11,%xmm11 - -# qhasm: a8 = mem128[ input_1 + 128 ] -# asm 1: movdqu 128(a8=reg128#15 -# asm 2: movdqu 128(a8=%xmm14 -movdqu 128(%rsi),%xmm14 - -# qhasm: r = a8 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r19 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r20 ^= r -# asm 1: pxor r7=reg128#11 -# asm 2: movdqa r7=%xmm10 -movdqa %xmm10,%xmm10 - -# qhasm: a7 = mem128[ input_1 + 112 ] -# asm 1: movdqu 112(a7=reg128#15 -# asm 2: movdqu 112(a7=%xmm14 -movdqu 112(%rsi),%xmm14 - -# qhasm: r = a7 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r18 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r19 ^= r -# asm 1: pxor r6=reg128#10 -# asm 2: movdqa r6=%xmm9 -movdqa %xmm9,%xmm9 - -# qhasm: a6 = mem128[ input_1 + 96 ] -# asm 1: movdqu 96(a6=reg128#15 -# asm 2: movdqu 96(a6=%xmm14 -movdqu 96(%rsi),%xmm14 - -# qhasm: r = a6 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r17 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r18 ^= r -# asm 1: pxor r5=reg128#9 -# asm 2: movdqa r5=%xmm8 -movdqa %xmm8,%xmm8 - -# qhasm: a5 = mem128[ input_1 + 80 ] -# asm 1: movdqu 80(a5=reg128#15 -# asm 2: movdqu 80(a5=%xmm14 -movdqu 80(%rsi),%xmm14 - -# qhasm: r = a5 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r16 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r17 ^= r -# asm 1: pxor r4=reg128#8 -# asm 2: movdqa r4=%xmm7 -movdqa %xmm7,%xmm7 - -# qhasm: a4 = mem128[ input_1 + 64 ] -# asm 1: movdqu 64(a4=reg128#15 -# asm 2: movdqu 64(a4=%xmm14 -movdqu 64(%rsi),%xmm14 - -# qhasm: r = a4 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r15 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r16 ^= r -# asm 1: pxor r3=reg128#7 -# asm 2: movdqa r3=%xmm6 -movdqa %xmm6,%xmm6 - -# qhasm: a3 = mem128[ input_1 + 48 ] -# asm 1: movdqu 48(a3=reg128#15 -# asm 2: movdqu 48(a3=%xmm14 -movdqu 48(%rsi),%xmm14 - -# qhasm: r = a3 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r14 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r15 ^= r -# asm 1: pxor r2=reg128#6 -# asm 2: movdqa r2=%xmm5 -movdqa %xmm5,%xmm5 - -# qhasm: a2 = mem128[ input_1 + 32 ] -# asm 1: movdqu 32(a2=reg128#15 -# asm 2: movdqu 32(a2=%xmm14 -movdqu 32(%rsi),%xmm14 - -# qhasm: r = a2 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r13 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r14 ^= r -# asm 1: pxor r1=reg128#5 -# asm 2: movdqa r1=%xmm4 -movdqa %xmm4,%xmm4 - -# qhasm: a1 = mem128[ input_1 + 16 ] -# asm 1: movdqu 16(a1=reg128#15 -# asm 2: movdqu 16(a1=%xmm14 -movdqu 16(%rsi),%xmm14 - -# qhasm: r = a1 & b0 -# asm 1: vpand r=reg128#16 -# asm 2: vpand r=%xmm15 -vpand %xmm0,%xmm14,%xmm15 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 16(r=%xmm15 -vpand 16(%rdx),%xmm14,%xmm15 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 32(r=%xmm15 -vpand 32(%rdx),%xmm14,%xmm15 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 48(r=%xmm15 -vpand 48(%rdx),%xmm14,%xmm15 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 64(r=%xmm15 -vpand 64(%rdx),%xmm14,%xmm15 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 80(r=%xmm15 -vpand 80(%rdx),%xmm14,%xmm15 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 96(r=%xmm15 -vpand 96(%rdx),%xmm14,%xmm15 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 112(r=%xmm15 -vpand 112(%rdx),%xmm14,%xmm15 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 128(r=%xmm15 -vpand 128(%rdx),%xmm14,%xmm15 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 144(r=%xmm15 -vpand 144(%rdx),%xmm14,%xmm15 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 160(r=%xmm15 -vpand 160(%rdx),%xmm14,%xmm15 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#16 -# asm 2: vpand 176(r=%xmm15 -vpand 176(%rdx),%xmm14,%xmm15 - -# qhasm: r12 ^= r -# asm 1: pxor r=reg128#15 -# asm 2: vpand 192(r=%xmm14 -vpand 192(%rdx),%xmm14,%xmm14 - -# qhasm: r13 ^= r -# asm 1: pxor r0=reg128#4 -# asm 2: movdqa r0=%xmm3 -movdqa %xmm3,%xmm3 - -# qhasm: a0 = mem128[ input_1 + 0 ] -# asm 1: movdqu 0(a0=reg128#15 -# asm 2: movdqu 0(a0=%xmm14 -movdqu 0(%rsi),%xmm14 - -# qhasm: r = a0 & b0 -# asm 1: vpand r=reg128#1 -# asm 2: vpand r=%xmm0 -vpand %xmm0,%xmm14,%xmm0 - -# qhasm: r0 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 16(r=%xmm0 -vpand 16(%rdx),%xmm14,%xmm0 - -# qhasm: r1 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 32(r=%xmm0 -vpand 32(%rdx),%xmm14,%xmm0 - -# qhasm: r2 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 48(r=%xmm0 -vpand 48(%rdx),%xmm14,%xmm0 - -# qhasm: r3 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 64(r=%xmm0 -vpand 64(%rdx),%xmm14,%xmm0 - -# qhasm: r4 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 80(r=%xmm0 -vpand 80(%rdx),%xmm14,%xmm0 - -# qhasm: r5 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 96(r=%xmm0 -vpand 96(%rdx),%xmm14,%xmm0 - -# qhasm: r6 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 112(r=%xmm0 -vpand 112(%rdx),%xmm14,%xmm0 - -# qhasm: r7 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 128(r=%xmm0 -vpand 128(%rdx),%xmm14,%xmm0 - -# qhasm: r8 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 144(r=%xmm0 -vpand 144(%rdx),%xmm14,%xmm0 - -# qhasm: r9 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 160(r=%xmm0 -vpand 160(%rdx),%xmm14,%xmm0 - -# qhasm: r10 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 176(r=%xmm0 -vpand 176(%rdx),%xmm14,%xmm0 - -# qhasm: r11 ^= r -# asm 1: pxor r=reg128#1 -# asm 2: vpand 192(r=%xmm0 -vpand 192(%rdx),%xmm14,%xmm0 - -# qhasm: r12 ^= r -# asm 1: pxor r=int64#7 -# asm 2: mov $0,>r=%rax -mov $0,%rax - -# qhasm: t0 = mem64[ input_0 + 192 ] -# asm 1: movq 192(t0=int64#2 -# asm 2: movq 192(t0=%rsi -movq 192(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 200 ] -# asm 1: movq 200(t1=int64#3 -# asm 2: movq 200(t1=%rdx -movq 200(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 176(t0=%rsi -movq 176(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 184 ] -# asm 1: movq 184(t1=int64#3 -# asm 2: movq 184(t1=%rdx -movq 184(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 160(t0=%rsi -movq 160(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 168 ] -# asm 1: movq 168(t1=int64#3 -# asm 2: movq 168(t1=%rdx -movq 168(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 144(t0=%rsi -movq 144(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 152 ] -# asm 1: movq 152(t1=int64#3 -# asm 2: movq 152(t1=%rdx -movq 152(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 128(t0=%rsi -movq 128(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 136 ] -# asm 1: movq 136(t1=int64#3 -# asm 2: movq 136(t1=%rdx -movq 136(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 112(t0=%rsi -movq 112(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 120 ] -# asm 1: movq 120(t1=int64#3 -# asm 2: movq 120(t1=%rdx -movq 120(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 96(t0=%rsi -movq 96(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 104 ] -# asm 1: movq 104(t1=int64#3 -# asm 2: movq 104(t1=%rdx -movq 104(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 80(t0=%rsi -movq 80(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 88 ] -# asm 1: movq 88(t1=int64#3 -# asm 2: movq 88(t1=%rdx -movq 88(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 64(t0=%rsi -movq 64(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 72 ] -# asm 1: movq 72(t1=int64#3 -# asm 2: movq 72(t1=%rdx -movq 72(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 48(t0=%rsi -movq 48(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 56 ] -# asm 1: movq 56(t1=int64#3 -# asm 2: movq 56(t1=%rdx -movq 56(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 32(t0=%rsi -movq 32(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 40 ] -# asm 1: movq 40(t1=int64#3 -# asm 2: movq 40(t1=%rdx -movq 40(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 16(t0=%rsi -movq 16(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 24 ] -# asm 1: movq 24(t1=int64#3 -# asm 2: movq 24(t1=%rdx -movq 24(%rdi),%rdx - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#2 -# asm 2: popcnt c=%rsi -popcnt %rsi, %rsi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1,t0=int64#2 -# asm 2: movq 0(t0=%rsi -movq 0(%rdi),%rsi - -# qhasm: t1 = mem64[ input_0 + 8 ] -# asm 1: movq 8(t1=int64#1 -# asm 2: movq 8(t1=%rdi -movq 8(%rdi),%rdi - -# qhasm: t0 ^= t1 -# asm 1: xor c=int64#1 -# asm 2: popcnt c=%rdi -popcnt %rsi, %rdi - -# qhasm: (uint32) c &= 1 -# asm 1: and $1, -#include - -#include "aes.h" - - -void PQCLEAN_MCELIECE8192128F_VEC_aes256ctr( - uint8_t *out, - size_t outlen, - const uint8_t nonce[AESCTR_NONCEBYTES], - const uint8_t key[AES256_KEYBYTES] -); - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/api.h b/crypto_kem/mceliece/mceliece8192128f/vec/api.h deleted file mode 100644 index 93dbda5d..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/api.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_API_H -#define PQCLEAN_MCELIECE8192128F_VEC_API_H - -#include - -#define PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_ALGNAME "Classic McEliece 8192128f" -#define PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_PUBLICKEYBYTES 1357824 -#define PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_SECRETKEYBYTES 14080 -#define PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_CIPHERTEXTBYTES 240 -#define PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_BYTES 32 - - -int PQCLEAN_MCELIECE8192128F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -); - -int PQCLEAN_MCELIECE8192128F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -); - -int PQCLEAN_MCELIECE8192128F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/benes.c b/crypto_kem/mceliece/mceliece8192128f/vec/benes.c deleted file mode 100644 index 1c4d60bb..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/benes.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - This file is for Benes network related functions -*/ - -#include "benes.h" - -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -/* middle layers of the benes network */ -static void layer_in(uint64_t data[2][64], uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[0][j + 0] ^ data[0][j + s]); - d &= (*bits++); - data[0][j + 0] ^= d; - data[0][j + s] ^= d; - - d = (data[1][j + 0] ^ data[1][j + s]); - d &= (*bits++); - data[1][j + 0] ^= d; - data[1][j + s] ^= d; - } - } -} - -/* first and last layers of the benes network */ -static void layer_ex(uint64_t *data, uint64_t *bits, int lgs) { - int i, j, s; - - uint64_t d; - - s = 1 << lgs; - - for (i = 0; i < 128; i += s * 2) { - for (j = i; j < i + s; j++) { - - d = (data[j + 0] ^ data[j + s]); - d &= (*bits++); - data[j + 0] ^= d; - data[j + s] ^= d; - } - } -} - -/* input: r, sequence of bits to be permuted */ -/* bits, condition bits of the Benes network */ -/* rev, 0 for normal application; !0 for inverse */ -/* output: r, permuted bits */ -void PQCLEAN_MCELIECE8192128F_VEC_benes(vec *r, const unsigned char *bits, int rev) { - int i, iter, inc; - - const unsigned char *bits_ptr; - - uint64_t r_int_v[2][64]; - uint64_t r_int_h[2][64]; - uint64_t b_int_v[64]; - uint64_t b_int_h[64]; - - // - - if (rev) { - bits_ptr = bits + 12288; - inc = -1024; - } else { - bits_ptr = bits; - inc = 0; - } - - for (i = 0; i < 64; i++) { - r_int_v[0][i] = r[i * 2 + 0]; - r_int_v[1][i] = r[i * 2 + 1]; - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 0; iter <= 6; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (iter = 0; iter <= 5; iter++) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - for (iter = 4; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - bits_ptr += inc; - - layer_in(r_int_v, b_int_v, iter); - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_h[0], r_int_v[0]); - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_h[1], r_int_v[1]); - - for (iter = 6; iter >= 0; iter--) { - for (i = 0; i < 64; i++) { - b_int_v[i] = PQCLEAN_MCELIECE8192128F_VEC_load8(bits_ptr); - bits_ptr += 8; - } - - bits_ptr += inc; - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(b_int_h, b_int_v); - - layer_ex(r_int_h[0], b_int_h, iter); - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_v[0], r_int_h[0]); - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(r_int_v[1], r_int_h[1]); - - for (i = 0; i < 64; i++) { - r[i * 2 + 0] = r_int_v[0][i]; - r[i * 2 + 1] = r_int_v[1][i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/benes.h b/crypto_kem/mceliece/mceliece8192128f/vec/benes.h deleted file mode 100644 index a89ce00d..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/benes.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_BENES_H -#define PQCLEAN_MCELIECE8192128F_VEC_BENES_H -/* - This file is for Benes network related functions -*/ - -#include - -void PQCLEAN_MCELIECE8192128F_VEC_benes(uint64_t * /*r*/, const unsigned char * /*bits*/, int /*rev*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/bm.c b/crypto_kem/mceliece/mceliece8192128f/vec/bm.c deleted file mode 100644 index 60278cd7..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/bm.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include "bm.h" - -#include "gf.h" - -static inline uint16_t mask_nonzero(gf a) { - uint32_t ret = a; - - ret -= 1; - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline uint16_t mask_leq(uint16_t a, uint16_t b) { - uint32_t a_tmp = a; - uint32_t b_tmp = b; - uint32_t ret = b_tmp - a_tmp; - - ret >>= 31; - ret -= 1; - - return (uint16_t)ret; -} - -static inline void vec_cmov(vec *out, const vec *in, uint16_t mask) { - int i; - - vec m0, m1; - - m0 = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(mask); - m1 = ~m0; - - for (i = 0; i < GFBITS; i++) { - out[i] = (in[i] & m0) | (out[i] & m1); - out[i] = (in[i] & m0) | (out[i] & m1); - } -} - -static inline void interleave(vec *in, int idx0, int idx1, const vec *mask, int b) { - int s = 1 << b; - - vec x, y; - - x = (in[idx0] & mask[0]) | ((in[idx1] & mask[0]) << s); - y = ((in[idx0] & mask[1]) >> s) | (in[idx1] & mask[1]); - - in[idx0] = x; - in[idx1] = y; -} - -/* input: in, field elements in bitsliced form */ -/* output: out, field elements in non-bitsliced form */ -static inline void get_coefs(gf *out, const vec *in) { - int i, k; - - vec mask[4][2]; - vec buf[16]; - - for (i = 0; i < 13; i++) { - buf[i] = in[i]; - } - for (i = 13; i < 16; i++) { - buf[i] = 0; - } - - mask[0][0] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0x5555); - mask[0][1] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0xAAAA); - mask[1][0] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0x3333); - mask[1][1] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0xCCCC); - mask[2][0] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0x0F0F); - mask[2][1] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0xF0F0); - mask[3][0] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0x00FF); - mask[3][1] = PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(0xFF00); - - interleave(buf, 0, 8, mask[3], 3); - interleave(buf, 1, 9, mask[3], 3); - interleave(buf, 2, 10, mask[3], 3); - interleave(buf, 3, 11, mask[3], 3); - interleave(buf, 4, 12, mask[3], 3); - interleave(buf, 5, 13, mask[3], 3); - interleave(buf, 6, 14, mask[3], 3); - interleave(buf, 7, 15, mask[3], 3); - - interleave(buf, 0, 4, mask[2], 2); - interleave(buf, 1, 5, mask[2], 2); - interleave(buf, 2, 6, mask[2], 2); - interleave(buf, 3, 7, mask[2], 2); - interleave(buf, 8, 12, mask[2], 2); - interleave(buf, 9, 13, mask[2], 2); - interleave(buf, 10, 14, mask[2], 2); - interleave(buf, 11, 15, mask[2], 2); - - interleave(buf, 0, 2, mask[1], 1); - interleave(buf, 1, 3, mask[1], 1); - interleave(buf, 4, 6, mask[1], 1); - interleave(buf, 5, 7, mask[1], 1); - interleave(buf, 8, 10, mask[1], 1); - interleave(buf, 9, 11, mask[1], 1); - interleave(buf, 12, 14, mask[1], 1); - interleave(buf, 13, 15, mask[1], 1); - - interleave(buf, 0, 1, mask[0], 0); - interleave(buf, 2, 3, mask[0], 0); - interleave(buf, 4, 5, mask[0], 0); - interleave(buf, 6, 7, mask[0], 0); - interleave(buf, 8, 9, mask[0], 0); - interleave(buf, 10, 11, mask[0], 0); - interleave(buf, 12, 13, mask[0], 0); - interleave(buf, 14, 15, mask[0], 0); - - for (i = 0; i < 16; i++) { - for (k = 0; k < 4; k++) { - out[ k * 16 + i ] = (buf[i] >> (k * 16)) & GFMASK; - } - } -} - -static void update(vec in[][GFBITS], const gf e) { - int i; - vec tmp; - - for (i = 0; i < GFBITS; i++) { - tmp = (e >> i) & 1; - - in[0][i] = (in[0][i] >> 1) | (in[1][i] << 63); - in[1][i] = (in[1][i] >> 1) | (tmp << 63); - } -} - -static inline gf vec_reduce(vec in[][GFBITS]) { - int i; - vec tmp; - gf ret = 0; - - for (i = GFBITS - 1; i >= 0; i--) { - tmp = in[0][i] ^ in[1][i]; - - tmp ^= tmp >> 32; - tmp ^= tmp >> 16; - tmp ^= tmp >> 8; - tmp ^= tmp >> 4; - tmp ^= tmp >> 2; - tmp ^= tmp >> 1; - - ret <<= 1; - ret |= tmp & 1; - } - - return ret; -} - -/* input: in, sequence of field elements */ -/* output: out, minimal polynomial of in */ -void PQCLEAN_MCELIECE8192128F_VEC_bm(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i; - uint16_t N, L; - uint16_t mask; - uint64_t one = 1, t; - - vec prod[2][GFBITS]; - vec interval[2][GFBITS]; - vec dd[2][GFBITS], bb[2][GFBITS]; - vec B[2][GFBITS], C[2][GFBITS]; - vec B_tmp[2][GFBITS], C_tmp[2][GFBITS]; - vec v[GFBITS]; - - gf d, b, c0 = 1; - gf coefs[256]; - - // initialization - - get_coefs(&coefs[ 0], in[0]); - get_coefs(&coefs[ 64], in[1]); - get_coefs(&coefs[128], in[2]); - get_coefs(&coefs[192], in[3]); - - C[0][0] = 0; - C[1][0] = 0; - B[0][0] = 0; - B[1][0] = one << 63; - - for (i = 1; i < GFBITS; i++) { - C[0][i] = C[1][i] = B[0][i] = B[1][i] = 0; - } - - b = 1; - L = 0; - - // - - for (i = 0; i < GFBITS; i++) { - interval[0][i] = interval[1][i] = 0; - } - - for (N = 0; N < 256; N++) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(prod[0], C[0], interval[0]); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(prod[1], C[1], interval[1]); - update(interval, coefs[N]); - d = vec_reduce(prod); - - t = PQCLEAN_MCELIECE8192128F_VEC_gf_mul2(c0, coefs[N], b); - d ^= t & 0xFFFFFFFF; - - mask = mask_nonzero(d) & mask_leq(L * 2, N); - - for (i = 0; i < GFBITS; i++) { - dd[0][i] = dd[1][i] = PQCLEAN_MCELIECE8192128F_VEC_vec_setbits((d >> i) & 1); - bb[0][i] = bb[1][i] = PQCLEAN_MCELIECE8192128F_VEC_vec_setbits((b >> i) & 1); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(B_tmp[0], dd[0], B[0]); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(B_tmp[1], dd[1], B[1]); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(C_tmp[0], bb[0], C[0]); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(C_tmp[1], bb[1], C[1]); - - vec_cmov(B[0], C[0], mask); - vec_cmov(B[1], C[1], mask); - update(B, c0 & mask); - - for (i = 0; i < GFBITS; i++) { - C[0][i] = B_tmp[0][i] ^ C_tmp[0][i]; - C[1][i] = B_tmp[1][i] ^ C_tmp[1][i]; - } - - c0 = (gf)(t >> 32); - b = (d & mask) | (b & ~mask); - L = ((N + 1 - L) & mask) | (L & ~mask); - } - - c0 = PQCLEAN_MCELIECE8192128F_VEC_gf_inv(c0); - - for (i = 0; i < GFBITS; i++) { - v[i] = PQCLEAN_MCELIECE8192128F_VEC_vec_setbits((c0 >> i) & 1); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(out[0], C[0], v); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(out[1], C[1], v); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/bm.h b/crypto_kem/mceliece/mceliece8192128f/vec/bm.h deleted file mode 100644 index 87e95ee4..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/bm.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_BM_H -#define PQCLEAN_MCELIECE8192128F_VEC_BM_H -/* - This file is for the inversion-free Berlekamp-Massey algorithm - see https://ieeexplore.ieee.org/document/87857 -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE8192128F_VEC_bm(vec /*out*/[][GFBITS], vec /*in*/[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/consts.inc b/crypto_kem/mceliece/mceliece8192128f/vec/consts.inc deleted file mode 100644 index 1875ca4d..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/consts.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0x6969969669699696, - 0x9966669966999966, - 0x9966669966999966, - 0xFF0000FF00FFFF00, - 0xCC3333CCCC3333CC, - 0x9966669966999966, - 0x6666666666666666, - 0xA55AA55AA55AA55A, - 0xCCCC33333333CCCC, - 0x5A5A5A5A5A5A5A5A, - 0x55AAAA55AA5555AA, - 0x0FF0F00FF00F0FF0, - 0x5AA55AA5A55AA55A -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x9999999966666666, - 0x3C3CC3C3C3C33C3C, - 0xFFFF0000FFFF0000, - 0x0000000000000000, - 0xCC33CC3333CC33CC, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0x00FFFF0000FFFF00 -}, -{ - 0xA55A5AA55AA5A55A, - 0x6969696996969696, - 0x5AA55AA5A55AA55A, - 0x6666666699999999, - 0xC3C33C3C3C3CC3C3, - 0x0000FFFF0000FFFF, - 0x0000000000000000, - 0x33CC33CCCC33CC33, - 0x0000000000000000, - 0x3C3C3C3C3C3C3C3C, - 0xAA5555AAAA5555AA, - 0xC33C3CC33CC3C33C, - 0xFF0000FFFF0000FF -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x9669966969966996, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0xA5A5A5A55A5A5A5A, - 0x0FF0F00FF00F0FF0, - 0x6996699696699669, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x6996699696699669, - 0x0000FFFFFFFF0000, - 0x33333333CCCCCCCC, - 0x5AA5A55AA55A5AA5, - 0xFF0000FFFF0000FF, - 0xFFFFFFFFFFFFFFFF, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAA55555555AAAA -}, -{ - 0xFFFFFFFF00000000, - 0x5A5A5A5AA5A5A5A5, - 0xF00F0FF00FF0F00F, - 0x9669966969966996, - 0xFFFF00000000FFFF, - 0x33333333CCCCCCCC, - 0xA55A5AA55AA5A55A, - 0x00FFFF0000FFFF00, - 0x0000000000000000, - 0xC33CC33CC33CC33C, - 0x0F0FF0F00F0FF0F0, - 0xCCCCCCCCCCCCCCCC, - 0x5555AAAAAAAA5555 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0x3CC33CC3C33CC33C, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0xAA55AA5555AA55AA, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0xC33CC33C3CC33CC3, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0x5AA5A55A5AA5A55A, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x9999999966666666, - 0xC33CC33CC33CC33C, - 0x6666999999996666 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x9966996699669966, - 0xA55A5AA5A55A5AA5, - 0xC3C3C3C33C3C3C3C, - 0xC33CC33C3CC33CC3, - 0x3333CCCC3333CCCC, - 0x6666666699999999, - 0x3CC33CC33CC33CC3, - 0x9999666666669999 -}, -{ - 0xC33C3CC33CC3C33C, - 0x6699996699666699, - 0x9966996699669966, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0x5AA5A55A5AA5A55A, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x6666666699999999, - 0xC33CC33CC33CC33C, - 0x9999666666669999 -}, -{ - 0x3CC3C33CC33C3CC3, - 0x9966669966999966, - 0x6699669966996699, - 0x6969969669699696, - 0x55AA55AAAA55AA55, - 0x6699669966996699, - 0xA55A5AA5A55A5AA5, - 0x3C3C3C3CC3C3C3C3, - 0x3CC33CC3C33CC33C, - 0xCCCC3333CCCC3333, - 0x9999999966666666, - 0x3CC33CC33CC33CC3, - 0x6666999999996666 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0xAA5555AA55AAAA55, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0x55555555AAAAAAAA, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0x55555555AAAAAAAA, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0x55AAAA55AA5555AA, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x9669699696696996, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0xAAAAAAAA55555555, - 0xCCCC33333333CCCC, - 0x0000FFFFFFFF0000, - 0xFF0000FF00FFFF00, - 0x6996699669966996 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0xA55AA55A5AA55AA5, - 0x55AAAA55AA5555AA, - 0x0FF0F00F0FF0F00F, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0xAAAAAAAA55555555, - 0x3333CCCCCCCC3333, - 0x0000FFFFFFFF0000, - 0x00FFFF00FF0000FF, - 0x9669966996699669 -}, -{ - 0x3C3CC3C3C3C33C3C, - 0xAAAAAAAA55555555, - 0xF00FF00F0FF00FF0, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0x5AA55AA55AA55AA5, - 0x55555555AAAAAAAA, - 0x3333CCCCCCCC3333, - 0xFFFF00000000FFFF, - 0xFF0000FF00FFFF00, - 0x9669966996699669 -}, -{ - 0xC3C33C3C3C3CC3C3, - 0xAAAAAAAA55555555, - 0x0FF00FF0F00FF00F, - 0x5AA55AA5A55AA55A, - 0xAA5555AA55AAAA55, - 0xF00F0FF0F00F0FF0, - 0x6996966969969669, - 0xA55AA55AA55AA55A, - 0x55555555AAAAAAAA, - 0xCCCC33333333CCCC, - 0xFFFF00000000FFFF, - 0x00FFFF00FF0000FF, - 0x6996699669966996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0xAAAAAAAAAAAAAAAA, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0x0000FFFF0000FFFF, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0xC33C3CC3C33C3CC3, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0x55AA55AA55AA55AA, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0xFFFF0000FFFF0000, - 0x0F0F0F0FF0F0F0F0, - 0x00FFFF00FF0000FF, - 0xCC3333CC33CCCC33, - 0xFF0000FF00FFFF00, - 0x6996966996696996, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x3CC3C33C3CC3C33C, - 0x5555555555555555, - 0xFFFF0000FFFF0000, - 0x3CC3C33C3CC3C33C, - 0xAA55AA55AA55AA55, - 0x0000FFFF0000FFFF, - 0xF0F0F0F00F0F0F0F, - 0xFF0000FF00FFFF00, - 0x33CCCC33CC3333CC, - 0x00FFFF00FF0000FF, - 0x9669699669969669, - 0xA55A5AA55AA5A55A, - 0x6996966996696996 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF0000FFFF0000, - 0xFF00FF00FF00FF00, - 0xF0F0F0F0F0F0F0F0, - 0xCCCCCCCCCCCCCCCC, - 0xAAAAAAAAAAAAAAAA -}, diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/controlbits.c b/crypto_kem/mceliece/mceliece8192128f/vec/controlbits.c deleted file mode 100644 index d62ca1f4..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/controlbits.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - -#include "controlbits.h" - -#include "params.h" - -#include - -typedef uint8_t bit; - -#define N (1 << GFBITS) - -static bit is_smaller(uint32_t a, uint32_t b) { - uint32_t ret = 0; - - ret = a - b; - ret >>= 31; - - return (bit)ret; -} - -static bit is_smaller_63b(uint64_t a, uint64_t b) { - uint64_t ret = 0; - - ret = a - b; - ret >>= 63; - - return (bit)ret; -} - -static void cswap(uint32_t *x, uint32_t *y, bit swap) { - uint32_t m; - uint32_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -static void cswap_63b(uint64_t *x, uint64_t *y, bit swap) { - uint64_t m; - uint64_t d; - - m = swap; - m = 0 - m; - - d = (*x ^ *y); - d &= m; - *x ^= d; - *y ^= d; -} - -/* output x = min(input x,input y) */ -/* output y = max(input x,input y) */ - -static void minmax(uint32_t *x, uint32_t *y) { - bit m; - - m = is_smaller(*y, *x); - cswap(x, y, m); -} - -static void minmax_63b(uint64_t *x, uint64_t *y) { - bit m; - - m = is_smaller_63b(*y, *x); - cswap_63b(x, y, m); -} - -/* merge first half of x[0],x[step],...,x[(2*n-1)*step] with second half */ -/* requires n to be a power of 2 */ - -static void merge(int n, uint32_t *x, int step) { - int i; - if (n == 1) { - minmax(&x[0], &x[step]); - } else { - merge(n / 2, x, step * 2); - merge(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax(&x[i * step], &x[(i + 1) * step]); - } - } -} - -static void merge_63b(int n, uint64_t *x, int step) { - int i; - if (n == 1) { - minmax_63b(&x[0], &x[step]); - } else { - merge_63b(n / 2, x, step * 2); - merge_63b(n / 2, x + step, step * 2); - for (i = 1; i < 2 * n - 1; i += 2) { - minmax_63b(&x[i * step], &x[(i + 1) * step]); - } - } -} - -/* sort x[0],x[1],...,x[n-1] in place */ -/* requires n to be a power of 2 */ - -static void sort(int n, uint32_t *x) { - if (n <= 1) { - return; - } - sort(n / 2, x); - sort(n / 2, x + n / 2); - merge(n / 2, x, 1); -} - -void PQCLEAN_MCELIECE8192128F_VEC_sort_63b(int n, uint64_t *x) { - if (n <= 1) { - return; - } - PQCLEAN_MCELIECE8192128F_VEC_sort_63b(n / 2, x); - PQCLEAN_MCELIECE8192128F_VEC_sort_63b(n / 2, x + n / 2); - merge_63b(n / 2, x, 1); -} - -/* y[pi[i]] = x[i] */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void composeinv(int n, uint32_t *y, const uint32_t *x, const uint32_t *pi) { // NC - int i; - uint32_t t[2 * N]; - - for (i = 0; i < n; ++i) { - t[i] = x[i] | (pi[i] << 16); - } - - sort(n, t); - - for (i = 0; i < n; ++i) { - y[i] = t[i] & 0xFFFF; - } -} - -/* ip[i] = j iff pi[i] = j */ -/* requires n = 2^w */ -/* requires pi to be a permutation */ -static void invert(int n, uint32_t *ip, const uint32_t *pi) { - int i; - - for (i = 0; i < n; i++) { - ip[i] = i; - } - - composeinv(n, ip, ip, pi); -} - - -static void flow(int w, uint32_t *x, const uint32_t *y, int t) { - bit m0; - bit m1; - - uint32_t b; - uint32_t y_copy = *y; - - m0 = is_smaller(*y & ((1 << w) - 1), *x & ((1 << w) - 1)); - m1 = is_smaller(0, t); - - cswap(x, &y_copy, m0); - b = m0 & m1; - *x ^= b << w; -} - -/* input: permutation pi */ -/* output: (2w-1)n/2 (or 0 if n==1) control bits c[0],c[step],c[2*step],... */ -/* requires n = 2^w */ -static void controlbitsfrompermutation(int w, int n, int step, int off, unsigned char *c, const uint32_t *pi) { - int i; - int j; - int k; - int t; - uint32_t ip[N] = {0}; - uint32_t I[2 * N] = {0}; - uint32_t P[2 * N] = {0}; - uint32_t PI[2 * N] = {0}; - uint32_t T[2 * N] = {0}; - uint32_t piflip[N] = {0}; - uint32_t subpi[2][N / 2] = {{0}}; - - if (w == 1) { - c[ off / 8 ] |= (pi[0] & 1) << (off % 8); - } - if (w <= 1) { - return; - } - - invert(n, ip, pi); - - for (i = 0; i < n; ++i) { - I[i] = ip[i] | (1 << w); - I[n + i] = pi[i]; - } - - for (i = 0; i < 2 * n; ++i) { - P[i] = (i >> w) + (i & ((1 << w) - 2)) + ((i & 1) << w); - } - - for (t = 0; t < w; ++t) { - composeinv(2 * n, PI, P, I); - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &PI[i], t); - } - - for (i = 0; i < 2 * n; ++i) { - T[i] = I[i ^ 1]; - } - - composeinv(2 * n, I, I, T); - - for (i = 0; i < 2 * n; ++i) { - T[i] = P[i ^ 1]; - } - - for (i = 0; i < 2 * n; ++i) { - flow(w, &P[i], &T[i], 1); - } - } - - for (i = 0; i < n; ++i) { - for (j = 0; j < w; ++j) { - piflip[i] = pi[i]; - } - } - - for (i = 0; i < n / 2; ++i) { - c[ (off + i * step) / 8 ] |= ((P[i * 2] >> w) & 1) << ((off + i * step) % 8); - } - for (i = 0; i < n / 2; ++i) { - c[ (off + ((w - 1)*n + i) * step) / 8 ] |= ((P[n + i * 2] >> w) & 1) << ((off + ((w - 1) * n + i) * step) % 8); - } - - for (i = 0; i < n / 2; ++i) { - cswap(&piflip[i * 2], &piflip[i * 2 + 1], (P[n + i * 2] >> w) & 1); - } - - for (k = 0; k < 2; ++k) { - for (i = 0; i < n / 2; ++i) { - subpi[k][i] = piflip[i * 2 + k] >> 1; - } - } - - for (k = 0; k < 2; ++k) { - controlbitsfrompermutation(w - 1, n / 2, step * 2, off + step * (n / 2 + k), c, subpi[k]); - } -} - -/* input: pi, a permutation*/ -/* output: out, control bits w.r.t. pi */ -void PQCLEAN_MCELIECE8192128F_VEC_controlbits(unsigned char *out, const uint32_t *pi) { - unsigned int i; - unsigned char c[ (2 * GFBITS - 1) * (1 << GFBITS) / 16 ]; - - for (i = 0; i < sizeof(c); i++) { - c[i] = 0; - } - - controlbitsfrompermutation(GFBITS, (1 << GFBITS), 1, 0, c, pi); - - for (i = 0; i < sizeof(c); i++) { - out[i] = c[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/controlbits.h b/crypto_kem/mceliece/mceliece8192128f/vec/controlbits.h deleted file mode 100644 index 8f28b206..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/controlbits.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_CONTROLBITS_H -#define PQCLEAN_MCELIECE8192128F_VEC_CONTROLBITS_H -/* - This file is for functions required for generating the control bits of the Benes network w.r.t. a random permutation - see the Lev-Pippenger-Valiant paper https://www.computer.org/csdl/trans/tc/1981/02/06312171.pdf -*/ - - -#include - -void PQCLEAN_MCELIECE8192128F_VEC_sort_63b(int n, uint64_t *x); -void PQCLEAN_MCELIECE8192128F_VEC_controlbits(unsigned char *out, const uint32_t *pi); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/crypto_hash.h b/crypto_kem/mceliece/mceliece8192128f/vec/crypto_hash.h deleted file mode 100644 index a35032ab..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/crypto_hash.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_HASH_H -#define PQCLEAN_MCELIECE8192128F_VEC_CRYPTO_HASH_H -#include "fips202.h" - -#define crypto_hash_32b(out,in,inlen) shake256(out, 32, in, inlen) - -#endif diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/decrypt.c b/crypto_kem/mceliece/mceliece8192128f/vec/decrypt.c deleted file mode 100644 index 405c0019..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/decrypt.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - This file is for Niederreiter decryption -*/ - -#include "decrypt.h" - -#include "benes.h" -#include "bm.h" -#include "fft.h" -#include "fft_tr.h" -#include "params.h" -#include "util.h" -#include "vec.h" - -#include - -static void scaling(vec out[][GFBITS], vec inv[][GFBITS], const unsigned char *sk, const vec *recv) { - int i, j; - - vec irr_int[2][ GFBITS ]; - vec eval[128][ GFBITS ]; - vec tmp[ GFBITS ]; - - // - - PQCLEAN_MCELIECE8192128F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128F_VEC_fft(eval, irr_int); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(eval[i], eval[i]); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_copy(inv[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(inv[i], inv[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_inv(tmp, inv[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(inv[i + 1], tmp, inv[i]); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_copy(inv[0], tmp); - - // - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void scaling_inv(vec out[][GFBITS], vec inv[][GFBITS], const vec *recv) { - int i, j; - - for (i = 0; i < 128; i++) { - for (j = 0; j < GFBITS; j++) { - out[i][j] = inv[i][j] & recv[i]; - } - } -} - -static void preprocess(vec *recv, const unsigned char *s) { - int i; - - recv[0] = 0; - - for (i = 1; i < 128; i++) { - recv[i] = recv[0]; - } - - for (i = 0; i < SYND_BYTES / 8; i++) { - recv[i] = PQCLEAN_MCELIECE8192128F_VEC_load8(s + i * 8); - } -} - -static uint16_t weight(const vec *v) { - uint16_t i, w = 0; - - for (i = 0; i < SYS_N; i++) { - w += (uint16_t)((v[i / 64] >> (i % 64)) & 1); - } - - return w; -} - -static uint16_t synd_cmp(vec s0[][ GFBITS ], vec s1[][ GFBITS ]) { - int i, j; - vec diff = 0; - - for (i = 0; i < 4; i++) { - for (j = 0; j < GFBITS; j++) { - diff |= (s0[i][j] ^ s1[i][j]); - } - } - - return (uint16_t)PQCLEAN_MCELIECE8192128F_VEC_vec_testz(diff); -} - -/* Niederreiter decryption with the Berlekamp decoder */ -/* intput: sk, secret key */ -/* c, ciphertext (syndrome) */ -/* output: e, error vector */ -/* return: 0 for success; 1 for failure */ -int PQCLEAN_MCELIECE8192128F_VEC_decrypt(unsigned char *e, const unsigned char *sk, const unsigned char *c) { - int i; - - uint16_t check_synd; - uint16_t check_weight; - - vec inv[ 128 ][ GFBITS ]; - vec scaled[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - - vec error[ 128 ]; - - vec s_priv[ 4 ][ GFBITS ]; - vec s_priv_cmp[ 4 ][ GFBITS ]; - vec locator[2][ GFBITS ]; - - vec recv[ 128 ]; - vec allone; - - // Berlekamp decoder - - preprocess(recv, c); - - PQCLEAN_MCELIECE8192128F_VEC_benes(recv, sk + IRR_BYTES, 1); - scaling(scaled, inv, sk, recv); - PQCLEAN_MCELIECE8192128F_VEC_fft_tr(s_priv, scaled); - PQCLEAN_MCELIECE8192128F_VEC_bm(locator, s_priv); - - PQCLEAN_MCELIECE8192128F_VEC_fft(eval, locator); - - // reencryption and weight check - - allone = PQCLEAN_MCELIECE8192128F_VEC_vec_setbits(1); - - for (i = 0; i < 128; i++) { - error[i] = PQCLEAN_MCELIECE8192128F_VEC_vec_or_reduce(eval[i]); - error[i] ^= allone; - } - - check_weight = weight(error) ^ SYS_T; - check_weight -= 1; - check_weight >>= 15; - - scaling_inv(scaled, inv, error); - PQCLEAN_MCELIECE8192128F_VEC_fft_tr(s_priv_cmp, scaled); - - check_synd = synd_cmp(s_priv, s_priv_cmp); - - // - - PQCLEAN_MCELIECE8192128F_VEC_benes(error, sk + IRR_BYTES, 0); - - for (i = 0; i < 128; i++) { - PQCLEAN_MCELIECE8192128F_VEC_store8(e + i * 8, error[i]); - } - - return 1 - (check_synd & check_weight); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/decrypt.h b/crypto_kem/mceliece/mceliece8192128f/vec/decrypt.h deleted file mode 100644 index 220e41cf..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/decrypt.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_DECRYPT_H -#define PQCLEAN_MCELIECE8192128F_VEC_DECRYPT_H -/* - This file is for Nieddereiter decryption -*/ - -int PQCLEAN_MCELIECE8192128F_VEC_decrypt(unsigned char * /*e*/, const unsigned char * /*sk*/, const unsigned char * /*c*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/encrypt.c b/crypto_kem/mceliece/mceliece8192128f/vec/encrypt.c deleted file mode 100644 index 85ccaa5c..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/encrypt.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - This file is for Niederreiter encryption -*/ - -#include "encrypt.h" - -#include "params.h" -#include "randombytes.h" -#include "util.h" - -#include - -/* output: e, an error vector of weight t */ -static void gen_e(unsigned char *e) { - size_t i, j; - int eq; - - uint16_t ind[ SYS_T ]; - uint8_t *ind8 = (uint8_t *)ind; - uint64_t e_int[ SYS_N / 64 ]; - uint64_t one = 1; - uint64_t mask; - uint64_t val[ SYS_T ]; - - while (1) { - randombytes(ind8, sizeof(ind)); - for (i = 0; i < sizeof(ind); i += 2) { - ind[i / 2] = (uint16_t)ind8[i + 1] << 8 | ind8[i]; - } - - for (i = 0; i < SYS_T; i++) { - ind[i] &= GFMASK; - } - - // check for repetition - - eq = 0; - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < i; j++) { - if (ind[i] == ind[j]) { - eq = 1; - } - } - } - - if (eq == 0) { - break; - } - } - - for (j = 0; j < SYS_T; j++) { - val[j] = one << (ind[j] & 63); - } - - for (i = 0; i < SYS_N / 64; i++) { - e_int[i] = 0; - - for (j = 0; j < SYS_T; j++) { - mask = i ^ (ind[j] >> 6); - mask -= 1; - mask >>= 63; - mask = -mask; - - e_int[i] |= val[j] & mask; - } - } - - for (i = 0; i < SYS_N / 64; i++) { - PQCLEAN_MCELIECE8192128F_VEC_store8(e + i * 8, e_int[i]); - } -} - -/* input: public key pk, error vector e */ -/* output: syndrome s */ -static void syndrome(unsigned char *s, const unsigned char *pk, const unsigned char *e) { - uint64_t b; - - const uint8_t *e_ptr8 = e + SYND_BYTES; - const uint8_t *pk_ptr8; - - int i, j; - - // - - for (i = 0; i < SYND_BYTES; i++) { - s[i] = e[i]; - } - - for (i = 0; i < PK_NROWS; i++) { - pk_ptr8 = pk + PK_ROW_BYTES * i; - - b = 0; - for (j = 0; j < PK_NCOLS / 64; j++) { - b ^= PQCLEAN_MCELIECE8192128F_VEC_load8(pk_ptr8 + 8 * j) & PQCLEAN_MCELIECE8192128F_VEC_load8(e_ptr8 + 8 * j); - } - - b ^= b >> 32; - b ^= b >> 16; - b ^= b >> 8; - b ^= b >> 4; - b ^= b >> 2; - b ^= b >> 1; - b &= 1; - - s[ i / 8 ] ^= (b << (i % 8)); - } -} - -/* input: public key pk */ -/* output: error vector e, syndrome s */ -void PQCLEAN_MCELIECE8192128F_VEC_encrypt(unsigned char *s, unsigned char *e, const unsigned char *pk) { - gen_e(e); - syndrome(s, pk, e); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/encrypt.h b/crypto_kem/mceliece/mceliece8192128f/vec/encrypt.h deleted file mode 100644 index bdbb115c..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/encrypt.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_ENCRYPT_H -#define PQCLEAN_MCELIECE8192128F_VEC_ENCRYPT_H -/* - This file is for Niederreiter encryption -*/ - - -void PQCLEAN_MCELIECE8192128F_VEC_encrypt(unsigned char * /*s*/, unsigned char * /*e*/, const unsigned char * /*pk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/fft.c b/crypto_kem/mceliece/mceliece8192128f/vec/fft.c deleted file mode 100644 index 16a69b2b..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/fft.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - This file is for the Gao-Mateer FFT - sse http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include "fft.h" - -#include "transpose.h" - -#include - -/* input: in, polynomial in bitsliced form */ -/* output: in, result of applying the radix conversions on in */ -static void radix_conversions(vec in[][GFBITS]) { - int i, j, k; - - const vec mask[5][2] = { - {0x8888888888888888, 0x4444444444444444}, - {0xC0C0C0C0C0C0C0C0, 0x3030303030303030}, - {0xF000F000F000F000, 0x0F000F000F000F00}, - {0xFF000000FF000000, 0x00FF000000FF0000}, - {0xFFFF000000000000, 0x0000FFFF00000000} - }; - - const vec s[5][2][GFBITS] = { -#include "scalars_2x.inc" - }; - - for (j = 0; j <= 5; j++) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[1][i] >> 32; - in[0][i] ^= in[1][i] << 32; - } - - for (i = 0; i < GFBITS; i++) { - for (k = 4; k >= j; k--) { - in[0][i] ^= (in[0][i] & mask[k][0]) >> (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) >> (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) >> (1 << k); - } - } - - if (j < 5) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(in[0], in[0], s[j][0]); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(in[1], in[1], s[j][1]); - } - } -} - -/* input: in, result of applying the radix conversions to the input polynomial */ -/* output: out, evaluation results (by applying the FFT butterflies) */ -static void butterflies(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[8][ GFBITS ]; - vec buf[128]; - - uint64_t consts_ptr = 2; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - const vec powers[ 128 ][ GFBITS ] = { -#include "powers.inc" - }; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[7] = {2522, 7827, 7801, 8035, 6897, 8167, 3476}; - - // - - for (i = 0; i < 7; i++) { - for (j = 0; j < GFBITS; j++) { - pre[i][j] = (beta[i] >> j) & 1; - pre[i][j] = -pre[i][j]; - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(pre[i], in[1], pre[i]); - } - - for (i = 0; i < GFBITS; i++) { - buf[0] = in[0][i]; - - buf[1] = buf[0] ^ pre[0][i]; - buf[32] = in[0][i] ^ pre[5][i]; - buf[3] = buf[1] ^ pre[1][i]; - buf[96] = buf[32] ^ pre[6][i]; - buf[97] = buf[96] ^ pre[0][i]; - buf[2] = in[0][i] ^ pre[1][i]; - buf[99] = buf[97] ^ pre[1][i]; - buf[6] = buf[2] ^ pre[2][i]; - buf[98] = buf[99] ^ pre[0][i]; - buf[7] = buf[6] ^ pre[0][i]; - buf[102] = buf[98] ^ pre[2][i]; - buf[5] = buf[7] ^ pre[1][i]; - buf[103] = buf[102] ^ pre[0][i]; - buf[101] = buf[103] ^ pre[1][i]; - buf[4] = in[0][i] ^ pre[2][i]; - buf[100] = buf[101] ^ pre[0][i]; - buf[12] = buf[4] ^ pre[3][i]; - buf[108] = buf[100] ^ pre[3][i]; - buf[13] = buf[12] ^ pre[0][i]; - buf[109] = buf[108] ^ pre[0][i]; - buf[15] = buf[13] ^ pre[1][i]; - buf[111] = buf[109] ^ pre[1][i]; - buf[14] = buf[15] ^ pre[0][i]; - buf[110] = buf[111] ^ pre[0][i]; - buf[10] = buf[14] ^ pre[2][i]; - buf[106] = buf[110] ^ pre[2][i]; - buf[11] = buf[10] ^ pre[0][i]; - buf[107] = buf[106] ^ pre[0][i]; - buf[9] = buf[11] ^ pre[1][i]; - buf[105] = buf[107] ^ pre[1][i]; - buf[104] = buf[105] ^ pre[0][i]; - buf[8] = in[0][i] ^ pre[3][i]; - buf[120] = buf[104] ^ pre[4][i]; - buf[24] = buf[8] ^ pre[4][i]; - buf[121] = buf[120] ^ pre[0][i]; - buf[25] = buf[24] ^ pre[0][i]; - buf[123] = buf[121] ^ pre[1][i]; - buf[27] = buf[25] ^ pre[1][i]; - buf[122] = buf[123] ^ pre[0][i]; - buf[26] = buf[27] ^ pre[0][i]; - buf[126] = buf[122] ^ pre[2][i]; - buf[30] = buf[26] ^ pre[2][i]; - buf[127] = buf[126] ^ pre[0][i]; - buf[31] = buf[30] ^ pre[0][i]; - buf[125] = buf[127] ^ pre[1][i]; - buf[29] = buf[31] ^ pre[1][i]; - buf[124] = buf[125] ^ pre[0][i]; - buf[28] = buf[29] ^ pre[0][i]; - buf[116] = buf[124] ^ pre[3][i]; - buf[20] = buf[28] ^ pre[3][i]; - buf[117] = buf[116] ^ pre[0][i]; - buf[21] = buf[20] ^ pre[0][i]; - buf[119] = buf[117] ^ pre[1][i]; - buf[23] = buf[21] ^ pre[1][i]; - buf[118] = buf[119] ^ pre[0][i]; - buf[22] = buf[23] ^ pre[0][i]; - buf[114] = buf[118] ^ pre[2][i]; - buf[18] = buf[22] ^ pre[2][i]; - buf[115] = buf[114] ^ pre[0][i]; - buf[19] = buf[18] ^ pre[0][i]; - buf[113] = buf[115] ^ pre[1][i]; - buf[17] = buf[19] ^ pre[1][i]; - buf[112] = buf[113] ^ pre[0][i]; - buf[80] = buf[112] ^ pre[5][i]; - buf[16] = in[0][i] ^ pre[4][i]; - buf[81] = buf[80] ^ pre[0][i]; - buf[48] = buf[16] ^ pre[5][i]; - buf[83] = buf[81] ^ pre[1][i]; - buf[49] = buf[48] ^ pre[0][i]; - buf[82] = buf[83] ^ pre[0][i]; - buf[51] = buf[49] ^ pre[1][i]; - buf[86] = buf[82] ^ pre[2][i]; - buf[50] = buf[51] ^ pre[0][i]; - buf[87] = buf[86] ^ pre[0][i]; - buf[54] = buf[50] ^ pre[2][i]; - buf[85] = buf[87] ^ pre[1][i]; - buf[55] = buf[54] ^ pre[0][i]; - buf[84] = buf[85] ^ pre[0][i]; - buf[53] = buf[55] ^ pre[1][i]; - buf[92] = buf[84] ^ pre[3][i]; - buf[52] = buf[53] ^ pre[0][i]; - buf[93] = buf[92] ^ pre[0][i]; - buf[60] = buf[52] ^ pre[3][i]; - buf[95] = buf[93] ^ pre[1][i]; - buf[61] = buf[60] ^ pre[0][i]; - buf[94] = buf[95] ^ pre[0][i]; - buf[63] = buf[61] ^ pre[1][i]; - buf[90] = buf[94] ^ pre[2][i]; - buf[62] = buf[63] ^ pre[0][i]; - buf[91] = buf[90] ^ pre[0][i]; - buf[58] = buf[62] ^ pre[2][i]; - buf[89] = buf[91] ^ pre[1][i]; - buf[59] = buf[58] ^ pre[0][i]; - buf[88] = buf[89] ^ pre[0][i]; - buf[57] = buf[59] ^ pre[1][i]; - buf[72] = buf[88] ^ pre[4][i]; - buf[56] = buf[57] ^ pre[0][i]; - buf[73] = buf[72] ^ pre[0][i]; - buf[40] = buf[56] ^ pre[4][i]; - buf[75] = buf[73] ^ pre[1][i]; - buf[41] = buf[40] ^ pre[0][i]; - buf[74] = buf[75] ^ pre[0][i]; - buf[43] = buf[41] ^ pre[1][i]; - buf[78] = buf[74] ^ pre[2][i]; - buf[42] = buf[43] ^ pre[0][i]; - buf[79] = buf[78] ^ pre[0][i]; - buf[46] = buf[42] ^ pre[2][i]; - buf[77] = buf[79] ^ pre[1][i]; - buf[47] = buf[46] ^ pre[0][i]; - buf[76] = buf[77] ^ pre[0][i]; - buf[45] = buf[47] ^ pre[1][i]; - buf[68] = buf[76] ^ pre[3][i]; - buf[44] = buf[45] ^ pre[0][i]; - buf[69] = buf[68] ^ pre[0][i]; - buf[36] = buf[44] ^ pre[3][i]; - buf[71] = buf[69] ^ pre[1][i]; - buf[37] = buf[36] ^ pre[0][i]; - buf[70] = buf[71] ^ pre[0][i]; - buf[39] = buf[37] ^ pre[1][i]; - buf[66] = buf[70] ^ pre[2][i]; - buf[38] = buf[39] ^ pre[0][i]; - buf[67] = buf[66] ^ pre[0][i]; - buf[34] = buf[38] ^ pre[2][i]; - buf[65] = buf[67] ^ pre[1][i]; - buf[35] = buf[34] ^ pre[0][i]; - buf[33] = buf[35] ^ pre[1][i]; - buf[64] = in[0][i] ^ pre[6][i]; - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(buf + 0, buf + 0); - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(buf + 64, buf + 64); - - for (j = 0; j < 128; j++) { - out[ reversal[j] ][i] = buf[j]; - } - } - - for (i = 1; i <= 6; i++) { - s = 1 << i; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(tmp, out[k + s], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - out[k ][b] ^= tmp[b]; - } - for (b = 0; b < GFBITS; b++) { - out[k + s][b] ^= out[k][b]; - } - } - } - - consts_ptr += (uint64_t)1 << i; - } - - // adding the part contributed by x^128 - - for (i = 0; i < 128; i++) { - for (b = 0; b < GFBITS; b++) { - out[i][b] ^= powers[i][b]; - } - } -} - -/* input: in, polynomial in bitsliced form */ -/* output: out, bitsliced results of evaluating in all the field elements */ -void PQCLEAN_MCELIECE8192128F_VEC_fft(vec out[][GFBITS], vec in[][GFBITS]) { - radix_conversions(in); - butterflies(out, in); -} diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/fft.h b/crypto_kem/mceliece/mceliece8192128f/vec/fft.h deleted file mode 100644 index ea2e7fd9..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/fft.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_FFT_H -#define PQCLEAN_MCELIECE8192128F_VEC_FFT_H -/* - This file is for the Gao-Mateer FFT - see http://www.math.clemson.edu/~sgao/papers/GM10.pdf -*/ - -#include - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE8192128F_VEC_fft(vec /*out*/[][GFBITS], vec /*in*/[][GFBITS]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.c b/crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.c deleted file mode 100644 index 0f4b8ca1..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - This file is for transpose of the Gao-Mateer FFT - Functions with names ending with _tr are (roughly) the transpose of the corresponding functions in fft.c -*/ - -#include "fft_tr.h" - -#include "transpose.h" - -#include - -static void radix_conversions_tr(vec in[][ GFBITS ]) { - int i, j, k; - - const vec mask[6][2] = { - {0x2222222222222222, 0x4444444444444444}, - {0x0C0C0C0C0C0C0C0C, 0x3030303030303030}, - {0x00F000F000F000F0, 0x0F000F000F000F00}, - {0x0000FF000000FF00, 0x00FF000000FF0000}, - {0x00000000FFFF0000, 0x0000FFFF00000000}, - {0xFFFFFFFF00000000, 0x00000000FFFFFFFF} - }; - - const vec s[6][4][GFBITS] = { -#include "scalars_4x.inc" - }; - - // - - for (j = 6; j >= 0; j--) { - if (j < 6) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(in[0], in[0], s[j][0]); // scaling - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(in[1], in[1], s[j][1]); // scaling - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(in[2], in[2], s[j][2]); // scaling - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(in[3], in[3], s[j][3]); // scaling - } - - for (k = j; k <= 4; k++) { - for (i = 0; i < GFBITS; i++) { - in[0][i] ^= (in[0][i] & mask[k][0]) << (1 << k); - in[0][i] ^= (in[0][i] & mask[k][1]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][0]) << (1 << k); - in[1][i] ^= (in[1][i] & mask[k][1]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][0]) << (1 << k); - in[2][i] ^= (in[2][i] & mask[k][1]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][0]) << (1 << k); - in[3][i] ^= (in[3][i] & mask[k][1]) << (1 << k); - } - } - - if (j <= 5) { - for (i = 0; i < GFBITS; i++) { - in[1][i] ^= in[0][i] >> 32; - in[1][i] ^= in[1][i] << 32; - - in[3][i] ^= in[2][i] >> 32; - in[3][i] ^= in[3][i] << 32; - } - } - - for (i = 0; i < GFBITS; i++) { - in[3][i] ^= in[2][i] ^= in[1][i]; - } - } -} - -static void butterflies_tr(vec out[][ GFBITS ], vec in[][ GFBITS ]) { - int i, j, k, s, b; - - vec tmp[ GFBITS ]; - vec pre[6][2][ GFBITS ]; - vec buf[2][64]; - - const vec consts[ 128 ][ GFBITS ] = { -#include "consts.inc" - }; - - uint64_t consts_ptr = 128; - - const unsigned char reversal[128] = { - 0, 64, 32, 96, 16, 80, 48, 112, - 8, 72, 40, 104, 24, 88, 56, 120, - 4, 68, 36, 100, 20, 84, 52, 116, - 12, 76, 44, 108, 28, 92, 60, 124, - 2, 66, 34, 98, 18, 82, 50, 114, - 10, 74, 42, 106, 26, 90, 58, 122, - 6, 70, 38, 102, 22, 86, 54, 118, - 14, 78, 46, 110, 30, 94, 62, 126, - 1, 65, 33, 97, 17, 81, 49, 113, - 9, 73, 41, 105, 25, 89, 57, 121, - 5, 69, 37, 101, 21, 85, 53, 117, - 13, 77, 45, 109, 29, 93, 61, 125, - 3, 67, 35, 99, 19, 83, 51, 115, - 11, 75, 43, 107, 27, 91, 59, 123, - 7, 71, 39, 103, 23, 87, 55, 119, - 15, 79, 47, 111, 31, 95, 63, 127 - }; - - const uint16_t beta[6] = {5246, 5306, 6039, 6685, 4905, 6755}; - - // - - for (i = 6; i >= 0; i--) { - s = 1 << i; - consts_ptr -= s; - - for (j = 0; j < 128; j += 2 * s) { - for (k = j; k < j + s; k++) { - for (b = 0; b < GFBITS; b++) { - in[k][b] ^= in[k + s][b]; - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(tmp, in[k], consts[ consts_ptr + (k - j) ]); - - for (b = 0; b < GFBITS; b++) { - in[k + s][b] ^= tmp[b]; - } - } - } - } - - for (i = 0; i < GFBITS; i++) { - for (k = 0; k < 128; k++) { - (&buf[0][0])[ k ] = in[ reversal[k] ][i]; - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(buf[0], buf[0]); - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(buf[1], buf[1]); - - for (k = 0; k < 2; k++) { - pre[0][k][i] = buf[k][32]; - buf[k][33] ^= buf[k][32]; - pre[1][k][i] = buf[k][33]; - buf[k][35] ^= buf[k][33]; - pre[0][k][i] ^= buf[k][35]; - buf[k][34] ^= buf[k][35]; - pre[2][k][i] = buf[k][34]; - buf[k][38] ^= buf[k][34]; - pre[0][k][i] ^= buf[k][38]; - buf[k][39] ^= buf[k][38]; - pre[1][k][i] ^= buf[k][39]; - buf[k][37] ^= buf[k][39]; - pre[0][k][i] ^= buf[k][37]; - buf[k][36] ^= buf[k][37]; - pre[3][k][i] = buf[k][36]; - buf[k][44] ^= buf[k][36]; - pre[0][k][i] ^= buf[k][44]; - buf[k][45] ^= buf[k][44]; - pre[1][k][i] ^= buf[k][45]; - buf[k][47] ^= buf[k][45]; - pre[0][k][i] ^= buf[k][47]; - buf[k][46] ^= buf[k][47]; - pre[2][k][i] ^= buf[k][46]; - buf[k][42] ^= buf[k][46]; - pre[0][k][i] ^= buf[k][42]; - buf[k][43] ^= buf[k][42]; - pre[1][k][i] ^= buf[k][43]; - buf[k][41] ^= buf[k][43]; - pre[0][k][i] ^= buf[k][41]; - buf[k][40] ^= buf[k][41]; - pre[4][k][i] = buf[k][40]; - buf[k][56] ^= buf[k][40]; - pre[0][k][i] ^= buf[k][56]; - buf[k][57] ^= buf[k][56]; - pre[1][k][i] ^= buf[k][57]; - buf[k][59] ^= buf[k][57]; - pre[0][k][i] ^= buf[k][59]; - buf[k][58] ^= buf[k][59]; - pre[2][k][i] ^= buf[k][58]; - buf[k][62] ^= buf[k][58]; - pre[0][k][i] ^= buf[k][62]; - buf[k][63] ^= buf[k][62]; - pre[1][k][i] ^= buf[k][63]; - buf[k][61] ^= buf[k][63]; - pre[0][k][i] ^= buf[k][61]; - buf[k][60] ^= buf[k][61]; - pre[3][k][i] ^= buf[k][60]; - buf[k][52] ^= buf[k][60]; - pre[0][k][i] ^= buf[k][52]; - buf[k][53] ^= buf[k][52]; - pre[1][k][i] ^= buf[k][53]; - buf[k][55] ^= buf[k][53]; - pre[0][k][i] ^= buf[k][55]; - buf[k][54] ^= buf[k][55]; - pre[2][k][i] ^= buf[k][54]; - buf[k][50] ^= buf[k][54]; - pre[0][k][i] ^= buf[k][50]; - buf[k][51] ^= buf[k][50]; - pre[1][k][i] ^= buf[k][51]; - buf[k][49] ^= buf[k][51]; - pre[0][k][i] ^= buf[k][49]; - buf[k][48] ^= buf[k][49]; - pre[5][k][i] = buf[k][48]; - buf[k][16] ^= buf[k][48]; - pre[0][k][i] ^= buf[k][16]; - buf[k][17] ^= buf[k][16]; - pre[1][k][i] ^= buf[k][17]; - buf[k][19] ^= buf[k][17]; - pre[0][k][i] ^= buf[k][19]; - buf[k][18] ^= buf[k][19]; - pre[2][k][i] ^= buf[k][18]; - buf[k][22] ^= buf[k][18]; - pre[0][k][i] ^= buf[k][22]; - buf[k][23] ^= buf[k][22]; - pre[1][k][i] ^= buf[k][23]; - buf[k][21] ^= buf[k][23]; - pre[0][k][i] ^= buf[k][21]; - buf[k][20] ^= buf[k][21]; - pre[3][k][i] ^= buf[k][20]; - buf[k][28] ^= buf[k][20]; - pre[0][k][i] ^= buf[k][28]; - buf[k][29] ^= buf[k][28]; - pre[1][k][i] ^= buf[k][29]; - buf[k][31] ^= buf[k][29]; - pre[0][k][i] ^= buf[k][31]; - buf[k][30] ^= buf[k][31]; - pre[2][k][i] ^= buf[k][30]; - buf[k][26] ^= buf[k][30]; - pre[0][k][i] ^= buf[k][26]; - buf[k][27] ^= buf[k][26]; - pre[1][k][i] ^= buf[k][27]; - buf[k][25] ^= buf[k][27]; - pre[0][k][i] ^= buf[k][25]; - buf[k][24] ^= buf[k][25]; - pre[4][k][i] ^= buf[k][24]; - buf[k][8] ^= buf[k][24]; - pre[0][k][i] ^= buf[k][8]; - buf[k][9] ^= buf[k][8]; - pre[1][k][i] ^= buf[k][9]; - buf[k][11] ^= buf[k][9]; - pre[0][k][i] ^= buf[k][11]; - buf[k][10] ^= buf[k][11]; - pre[2][k][i] ^= buf[k][10]; - buf[k][14] ^= buf[k][10]; - pre[0][k][i] ^= buf[k][14]; - buf[k][15] ^= buf[k][14]; - pre[1][k][i] ^= buf[k][15]; - buf[k][13] ^= buf[k][15]; - pre[0][k][i] ^= buf[k][13]; - buf[k][12] ^= buf[k][13]; - pre[3][k][i] ^= buf[k][12]; - buf[k][4] ^= buf[k][12]; - pre[0][k][i] ^= buf[k][4]; - buf[k][5] ^= buf[k][4]; - pre[1][k][i] ^= buf[k][5]; - buf[k][7] ^= buf[k][5]; - pre[0][k][i] ^= buf[k][7]; - buf[k][6] ^= buf[k][7]; - pre[2][k][i] ^= buf[k][6]; - buf[k][2] ^= buf[k][6]; - pre[0][k][i] ^= buf[k][2]; - buf[k][3] ^= buf[k][2]; - pre[1][k][i] ^= buf[k][3]; - buf[k][1] ^= buf[k][3]; - - pre[0][k][i] ^= buf[k][1]; - out[k][i] = buf[k][0] ^ buf[k][1]; - } - } - - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128F_VEC_vec_setbits((beta[0] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(out[2], pre[0][0], tmp); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(out[3], pre[0][1], tmp); - - for (i = 1; i < 6; i++) { - for (j = 0; j < GFBITS; j++) { - tmp[j] = PQCLEAN_MCELIECE8192128F_VEC_vec_setbits((beta[i] >> j) & 1); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(pre[i][0], pre[i][0], tmp); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(pre[i][1], pre[i][1], tmp); - - for (b = 0; b < GFBITS; b++) { - out[2][b] ^= pre[i][0][b]; - out[3][b] ^= pre[i][1][b]; - } - } - -} - -void PQCLEAN_MCELIECE8192128F_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]) { - butterflies_tr(out, in); - - radix_conversions_tr(out); -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.h b/crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.h deleted file mode 100644 index b5f9b429..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/fft_tr.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_FFT_TR_H -#define PQCLEAN_MCELIECE8192128F_VEC_FFT_TR_H -/* - This file is for transpose of the Gao-Mateer FFT -*/ - - -#include "params.h" -#include "vec.h" - -void PQCLEAN_MCELIECE8192128F_VEC_fft_tr(vec out[][GFBITS], vec in[][ GFBITS ]); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/gf.c b/crypto_kem/mceliece/mceliece8192128f/vec/gf.c deleted file mode 100644 index a0f43674..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/gf.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - this file is for functions for field arithmetic -*/ - -#include "gf.h" - -#include "params.h" - -#include - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128F_VEC_gf_mul2(gf a, gf b0, gf b1) { - int i; - - uint64_t tmp = 0; - uint64_t t0; - uint64_t t1; - uint64_t t; - uint64_t mask = 0x0000000100000001; - - t0 = a; - t1 = b1; - t1 = (t1 << 32) | b0; - - for (i = 0; i < GFBITS; i++) { - tmp ^= t0 * (t1 & mask); - mask += mask; - } - - // - - t = tmp & 0x01FF000001FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x0000E0000000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & 0x00001FFF00001FFF; -} - -/* field multiplication */ -gf PQCLEAN_MCELIECE8192128F_VEC_gf_mul(gf in0, gf in1) { - int i; - - uint64_t tmp; - uint64_t t0; - uint64_t t1; - uint64_t t; - - t0 = in0; - t1 = in1; - - tmp = t0 * (t1 & 1); - - for (i = 1; i < GFBITS; i++) { - tmp ^= (t0 * (t1 & ((uint64_t)1 << i))); - } - - // - - t = tmp & 0x1FF0000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - t = tmp & 0x000E000; - tmp ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - - return tmp & GFMASK; -} - -/* 2 field squarings */ -static inline gf gf_sq2(gf in) { - int i; - - const uint64_t B[] = {0x1111111111111111, - 0x0303030303030303, - 0x000F000F000F000F, - 0x000000FF000000FF - }; - - const uint64_t M[] = {0x0001FF0000000000, - 0x000000FF80000000, - 0x000000007FC00000, - 0x00000000003FE000 - }; - - uint64_t x = in; - uint64_t t; - - x = (x | (x << 24)) & B[3]; - x = (x | (x << 12)) & B[2]; - x = (x | (x << 6)) & B[1]; - x = (x | (x << 3)) & B[0]; - - for (i = 0; i < 4; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square and multiply */ -static inline gf gf_sqmul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x0000001FF0000000, - 0x000000000FF80000, - 0x000000000007E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 6) * (t0 & (1 << 6)); - - t0 ^= (t0 << 7); - - x ^= (t1 * (t0 & (0x04001))); - x ^= (t1 * (t0 & (0x08002))) << 1; - x ^= (t1 * (t0 & (0x10004))) << 2; - x ^= (t1 * (t0 & (0x20008))) << 3; - x ^= (t1 * (t0 & (0x40010))) << 4; - x ^= (t1 * (t0 & (0x80020))) << 5; - - for (i = 0; i < 3; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* square twice and multiply */ -static inline gf gf_sq2mul(gf in, gf m) { - int i; - - uint64_t x; - uint64_t t0; - uint64_t t1; - uint64_t t; - - const uint64_t M[] = {0x1FF0000000000000, - 0x000FF80000000000, - 0x000007FC00000000, - 0x00000003FE000000, - 0x0000000001FE0000, - 0x000000000001E000 - }; - - t0 = in; - t1 = m; - - x = (t1 << 18) * (t0 & (1 << 6)); - - t0 ^= (t0 << 21); - - x ^= (t1 * (t0 & (0x010000001))); - x ^= (t1 * (t0 & (0x020000002))) << 3; - x ^= (t1 * (t0 & (0x040000004))) << 6; - x ^= (t1 * (t0 & (0x080000008))) << 9; - x ^= (t1 * (t0 & (0x100000010))) << 12; - x ^= (t1 * (t0 & (0x200000020))) << 15; - - for (i = 0; i < 6; i++) { - t = x & M[i]; - x ^= (t >> 9) ^ (t >> 10) ^ (t >> 12) ^ (t >> 13); - } - - return x & GFMASK; -} - -/* return num/den */ -gf PQCLEAN_MCELIECE8192128F_VEC_gf_frac(gf den, gf num) { - gf tmp_11; - gf tmp_1111; - gf out; - - tmp_11 = gf_sqmul(den, den); // 11 - tmp_1111 = gf_sq2mul(tmp_11, tmp_11); // 1111 - out = gf_sq2(tmp_1111); - out = gf_sq2mul(out, tmp_1111); // 11111111 - out = gf_sq2(out); - out = gf_sq2mul(out, tmp_1111); // 111111111111 - - return gf_sqmul(out, num); // 1111111111110 -} - -/* return 1/den */ -gf PQCLEAN_MCELIECE8192128F_VEC_gf_inv(gf in) { - return PQCLEAN_MCELIECE8192128F_VEC_gf_frac(in, ((gf) 1)); -} - -/* check if a == 0 */ -gf PQCLEAN_MCELIECE8192128F_VEC_gf_iszero(gf a) { - uint32_t t = a; - - t -= 1; - t >>= 19; - - return (gf) t; -} - -/* multiplication in GF((2^m)^t) */ -void PQCLEAN_MCELIECE8192128F_VEC_GF_mul(gf *out, const gf *in0, const gf *in1) { - int i, j; - - gf prod[255]; - - for (i = 0; i < 255; i++) { - prod[i] = 0; - } - - for (i = 0; i < 128; i++) { - for (j = 0; j < 128; j++) { - prod[i + j] ^= PQCLEAN_MCELIECE8192128F_VEC_gf_mul(in0[i], in1[j]); - } - } - - // - - for (i = 254; i >= 128; i--) { - prod[i - 123] ^= PQCLEAN_MCELIECE8192128F_VEC_gf_mul(prod[i], (gf) 7682); - prod[i - 125] ^= PQCLEAN_MCELIECE8192128F_VEC_gf_mul(prod[i], (gf) 2159); - prod[i - 128] ^= PQCLEAN_MCELIECE8192128F_VEC_gf_mul(prod[i], (gf) 3597); - } - - for (i = 0; i < 128; i++) { - out[i] = prod[i]; - } -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/gf.h b/crypto_kem/mceliece/mceliece8192128f/vec/gf.h deleted file mode 100644 index c7fd7559..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/gf.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_GF_H -#define PQCLEAN_MCELIECE8192128F_VEC_GF_H -/* - This file is for functions for field arithmetic -*/ - - -#include "params.h" - -#include - -typedef uint16_t gf; - -gf PQCLEAN_MCELIECE8192128F_VEC_gf_iszero(gf /*a*/); -gf PQCLEAN_MCELIECE8192128F_VEC_gf_mul(gf /*in0*/, gf /*in1*/); -gf PQCLEAN_MCELIECE8192128F_VEC_gf_frac(gf /*den*/, gf /*num*/); -gf PQCLEAN_MCELIECE8192128F_VEC_gf_inv(gf /*in*/); - -void PQCLEAN_MCELIECE8192128F_VEC_GF_mul(gf * /*out*/, const gf * /*in0*/, const gf * /*in1*/); - -/* 2 field multiplications */ -uint64_t PQCLEAN_MCELIECE8192128F_VEC_gf_mul2(gf a, gf b0, gf b1); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/operations.c b/crypto_kem/mceliece/mceliece8192128f/vec/operations.c deleted file mode 100644 index 3eb03f90..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/operations.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "api.h" - -#include "aes256ctr.h" -#include "controlbits.h" -#include "crypto_hash.h" -#include "decrypt.h" -#include "encrypt.h" -#include "params.h" -#include "pk_gen.h" -#include "randombytes.h" -#include "sk_gen.h" -#include "util.h" - -#include -#include - -int PQCLEAN_MCELIECE8192128F_VEC_crypto_kem_enc( - uint8_t *c, - uint8_t *key, - const uint8_t *pk -) { - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t one_ec[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ] = {1}; - - PQCLEAN_MCELIECE8192128F_VEC_encrypt(c, e, pk); - - crypto_hash_32b(c + SYND_BYTES, two_e, sizeof(two_e)); - - memcpy(one_ec + 1, e, SYS_N / 8); - memcpy(one_ec + 1 + SYS_N / 8, c, SYND_BYTES + 32); - - crypto_hash_32b(key, one_ec, sizeof(one_ec)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128F_VEC_crypto_kem_dec( - uint8_t *key, - const uint8_t *c, - const uint8_t *sk -) { - int i; - - uint8_t ret_confirm = 0; - uint8_t ret_decrypt = 0; - - uint16_t m; - - uint8_t conf[32]; - uint8_t two_e[ 1 + SYS_N / 8 ] = {2}; - uint8_t *e = two_e + 1; - uint8_t preimage[ 1 + SYS_N / 8 + (SYND_BYTES + 32) ]; - uint8_t *x = preimage; - - // - - ret_decrypt = (uint8_t)PQCLEAN_MCELIECE8192128F_VEC_decrypt(e, sk + SYS_N / 8, c); - - crypto_hash_32b(conf, two_e, sizeof(two_e)); - - for (i = 0; i < 32; i++) { - ret_confirm |= conf[i] ^ c[SYND_BYTES + i]; - } - - m = ret_decrypt | ret_confirm; - m -= 1; - m >>= 8; - - *x++ = (~m & 0) | (m & 1); - for (i = 0; i < SYS_N / 8; i++) { - *x++ = (~m & sk[i]) | (m & e[i]); - } - for (i = 0; i < SYND_BYTES + 32; i++) { - *x++ = c[i]; - } - - crypto_hash_32b(key, preimage, sizeof(preimage)); - - return 0; -} - -int PQCLEAN_MCELIECE8192128F_VEC_crypto_kem_keypair -( - uint8_t *pk, - uint8_t *sk -) { - int i; - uint8_t seed[ 32 ]; - uint8_t r[ SYS_T * 2 + (1 << GFBITS)*sizeof(uint32_t) + SYS_N / 8 + 32 ]; - uint8_t nonce[ 16 ] = {0}; - uint8_t *rp; - - gf f[ SYS_T ]; // element in GF(2^mt) - gf irr[ SYS_T ]; // Goppa polynomial - uint32_t perm[ 1 << GFBITS ]; // random permutation - - randombytes(seed, sizeof(seed)); - - while (1) { - rp = r; - PQCLEAN_MCELIECE8192128F_VEC_aes256ctr(r, sizeof(r), nonce, seed); - memcpy(seed, &r[ sizeof(r) - 32 ], 32); - - for (i = 0; i < SYS_T; i++) { - f[i] = PQCLEAN_MCELIECE8192128F_VEC_load2(rp + i * 2); - } - rp += sizeof(f); - if (PQCLEAN_MCELIECE8192128F_VEC_genpoly_gen(irr, f)) { - continue; - } - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = PQCLEAN_MCELIECE8192128F_VEC_load4(rp + i * 4); - } - rp += sizeof(perm); - if (PQCLEAN_MCELIECE8192128F_VEC_perm_check(perm)) { - continue; - } - - for (i = 0; i < SYS_T; i++) { - PQCLEAN_MCELIECE8192128F_VEC_store2(sk + SYS_N / 8 + i * 2, irr[i]); - } - if (PQCLEAN_MCELIECE8192128F_VEC_pk_gen(pk, perm, sk + SYS_N / 8)) { - continue; - } - - memcpy(sk, rp, SYS_N / 8); - PQCLEAN_MCELIECE8192128F_VEC_controlbits(sk + SYS_N / 8 + IRR_BYTES, perm); - - break; - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/params.h b/crypto_kem/mceliece/mceliece8192128f/vec/params.h deleted file mode 100644 index 400d08dd..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/params.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_PARAMS_H -#define PQCLEAN_MCELIECE8192128F_VEC_PARAMS_H - -#define GFBITS 13 -#define SYS_N 8192 -#define SYS_T 128 - -#define COND_BYTES ((1 << (GFBITS-4))*(2*GFBITS - 1)) -#define IRR_BYTES (SYS_T * 2) - -#define PK_NROWS (SYS_T*GFBITS) -#define PK_NCOLS (SYS_N - PK_NROWS) -#define PK_ROW_BYTES ((PK_NCOLS + 7)/8) - -#define SK_BYTES (SYS_N/8 + IRR_BYTES + COND_BYTES) -#define SYND_BYTES ((PK_NROWS + 7)/8) - -#define GFMASK ((1 << GFBITS) - 1) - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.c b/crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.c deleted file mode 100644 index 942173c2..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.c +++ /dev/null @@ -1,301 +0,0 @@ -/* - This file is for public-key generation -*/ - -#include "pk_gen.h" - -#include "benes.h" -#include "controlbits.h" -#include "fft.h" -#include "params.h" -#include "transpose.h" -#include "util.h" -#include "vec.h" - -#include - -#define min(a, b) (((a) < (b)) ? (a) : (b)) - -static void de_bitslicing(uint64_t *out, vec in[][GFBITS]) { - int i, j, r; - - for (i = 0; i < (1 << GFBITS); i++) { - out[i] = 0 ; - } - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 0; r < 64; r++) { - out[i * 64 + r] <<= 1; - out[i * 64 + r] |= (in[i][j] >> r) & 1; - } - } - } -} - -static void to_bitslicing_2x(vec out0[][GFBITS], vec out1[][GFBITS], const uint64_t *in) { - int i, j, r; - - for (i = 0; i < 128; i++) { - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out1[i][j] <<= 1; - out1[i][j] |= (in[i * 64 + r] >> (j + GFBITS)) & 1; - } - } - - for (j = GFBITS - 1; j >= 0; j--) { - for (r = 63; r >= 0; r--) { - out0[i][GFBITS - 1 - j] <<= 1; - out0[i][GFBITS - 1 - j] |= (in[i * 64 + r] >> j) & 1; - } - } - } -} - -/* return number of trailing zeros of the non-zero input in */ -static inline int ctz(uint64_t in) { - int i, b, m = 0, r = 0; - - for (i = 0; i < 64; i++) { - b = (int)(in >> i) & 1; - m |= b; - r += (m ^ 1) & (b ^ 1); - } - - return r; -} - -static inline uint64_t same_mask(uint16_t x, uint16_t y) { - uint64_t mask; - - mask = x ^ y; - mask -= 1; - mask >>= 63; - mask = -mask; - - return mask; -} - -static int mov_columns(uint64_t mat[][ 128 ], uint32_t *perm) { - int i, j, k, s, block_idx, row; - uint64_t buf[64], ctz_list[32], t, d, mask; - - row = GFBITS * SYS_T - 32; - block_idx = row / 64; - - // extract the 32x64 matrix - - for (i = 0; i < 32; i++) { - buf[i] = (mat[ row + i ][ block_idx + 0 ] >> 32) | - (mat[ row + i ][ block_idx + 1 ] << 32); - } - - // compute the column indices of pivots by Gaussian elimination. - // the indices are stored in ctz_list - - for (i = 0; i < 32; i++) { - t = buf[i]; - for (j = i + 1; j < 32; j++) { - t |= buf[j]; - } - - if (t == 0) { - return -1; // return if buf is not full rank - } - - ctz_list[i] = s = ctz(t); - - for (j = i + 1; j < 32; j++) { - mask = (buf[i] >> s) & 1; - mask -= 1; - buf[i] ^= buf[j] & mask; - } - for (j = 0; j < i; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - for (j = i + 1; j < 32; j++) { - mask = (buf[j] >> s) & 1; - mask = -mask; - buf[j] ^= buf[i] & mask; - } - } - - // updating permutation - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = perm[ row + j ] ^ perm[ row + k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - perm[ row + j ] ^= d; - perm[ row + k ] ^= d; - } - } - - // moving columns of mat according to the column indices of pivots - - for (i = 0; i < GFBITS * SYS_T; i += 64) { - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - buf[j] = (mat[ i + j ][ block_idx + 0 ] >> 32) | - (mat[ i + j ][ block_idx + 1 ] << 32); - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < 32; j++) { - for (k = j + 1; k < 64; k++) { - d = buf[ j ] ^ buf[ k ]; - d &= same_mask((uint16_t)k, (uint16_t)ctz_list[j]); - buf[ j ] ^= d; - buf[ k ] ^= d; - } - } - - PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(buf, buf); - - for (j = 0; j < min(64, GFBITS * SYS_T - i); j++) { - mat[ i + j ][ block_idx + 0 ] = (mat[ i + j ][ block_idx + 0 ] << 32 >> 32) | (buf[j] << 32); - mat[ i + j ][ block_idx + 1 ] = (mat[ i + j ][ block_idx + 1 ] >> 32 << 32) | (buf[j] >> 32); - } - } - - return 0; -} - -int PQCLEAN_MCELIECE8192128F_VEC_pk_gen(unsigned char *pk, uint32_t *perm, const unsigned char *sk) { - const int nblocks_H = (SYS_N + 63) / 64; - const int nblocks_I = (GFBITS * SYS_T + 63) / 64; - - int i, j, k; - int row, c; - - uint64_t mat[ GFBITS * SYS_T ][ 128 ]; - - uint64_t mask; - - vec irr_int[2][ GFBITS ]; - - vec consts[ 128 ][ GFBITS ]; - vec eval[ 128 ][ GFBITS ]; - vec prod[ 128 ][ GFBITS ]; - vec tmp[ GFBITS ]; - - uint64_t list[1 << GFBITS]; - - // compute the inverses - - PQCLEAN_MCELIECE8192128F_VEC_irr_load(irr_int, sk); - - PQCLEAN_MCELIECE8192128F_VEC_fft(eval, irr_int); - - PQCLEAN_MCELIECE8192128F_VEC_vec_copy(prod[0], eval[0]); - - for (i = 1; i < 128; i++) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(prod[i], prod[i - 1], eval[i]); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_inv(tmp, prod[127]); - - for (i = 126; i >= 0; i--) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(prod[i + 1], prod[i], tmp); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(tmp, tmp, eval[i + 1]); - } - - PQCLEAN_MCELIECE8192128F_VEC_vec_copy(prod[0], tmp); - - // fill matrix - - de_bitslicing(list, prod); - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] <<= GFBITS; - list[i] |= i; - list[i] |= ((uint64_t) perm[i]) << 31; - } - - PQCLEAN_MCELIECE8192128F_VEC_sort_63b(1 << GFBITS, list); - - to_bitslicing_2x(consts, prod, list); - - for (i = 0; i < (1 << GFBITS); i++) { - perm[i] = list[i] & GFMASK; - } - - for (j = 0; j < nblocks_H; j++) { - for (k = 0; k < GFBITS; k++) { - mat[ k ][ j ] = prod[ j ][ k ]; - } - } - - for (i = 1; i < SYS_T; i++) { - for (j = 0; j < nblocks_H; j++) { - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(prod[j], prod[j], consts[j]); - - for (k = 0; k < GFBITS; k++) { - mat[ i * GFBITS + k ][ j ] = prod[ j ][ k ]; - } - } - } - - // gaussian elimination - - for (i = 0; i < (GFBITS * SYS_T) / 64; i++) { - for (j = 0; j < 64; j++) { - row = i * 64 + j; - - if (row == GFBITS * SYS_T - 32) { - if (mov_columns(mat, perm)) { - return -1; - } - } - - for (k = row + 1; k < PK_NROWS; k++) { - mask = mat[ row ][ i ] >> j; - mask &= 1; - mask -= 1; - - for (c = 0; c < 128; c++) { - mat[ row ][ c ] ^= mat[ k ][ c ] & mask; - } - } - - if ( ((mat[ row ][ i ] >> j) & 1) == 0 ) { // return if not systematic - return -1; - } - - for (k = 0; k < row; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < 128; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - for (k = row + 1; k < GFBITS * SYS_T; k++) { - mask = mat[ k ][ i ] >> j; - mask &= 1; - mask = -mask; - - for (c = 0; c < 128; c++) { - mat[ k ][ c ] ^= mat[ row ][ c ] & mask; - } - } - } - } - - for (i = 0; i < GFBITS * SYS_T; i++) { - for (j = nblocks_I; j < 128; j++) { - PQCLEAN_MCELIECE8192128F_VEC_store8(pk, mat[i][j]); - pk += 8; - } - } - - // - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.h b/crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.h deleted file mode 100644 index 96c12e6a..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/pk_gen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_PK_GEN_H -#define PQCLEAN_MCELIECE8192128F_VEC_PK_GEN_H -/* - This file is for public-key generation -*/ - -#include - -int PQCLEAN_MCELIECE8192128F_VEC_pk_gen(unsigned char * /*pk*/, uint32_t * /*perm*/, const unsigned char * /*sk*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/powers.inc b/crypto_kem/mceliece/mceliece8192128f/vec/powers.inc deleted file mode 100644 index a9bd6179..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/powers.inc +++ /dev/null @@ -1,1920 +0,0 @@ -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0x00000000FFFFFFFF, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0x5A5A5A5A5A5A5A5A, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0xCC33CC33CC33CC33, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0xCC33CC33CC33CC33, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x9696969669696969, - 0xA5A5A5A5A5A5A5A5, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0x0F0FF0F00F0FF0F0 -}, -{ - 0xA55AA55A5AA55AA5, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0x5A5A5A5A5A5A5A5A, - 0xA5A5A5A55A5A5A5A, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0x3CC33CC3C33CC33C, - 0xA5A55A5AA5A55A5A, - 0x0000FFFF0000FFFF, - 0x33CC33CC33CC33CC, - 0xF00FF00F0FF00FF0, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0x5555AAAAAAAA5555, - 0xF00FF00FF00FF00F, - 0xF0F00F0FF0F00F0F -}, -{ - 0x5AA55AA5A55AA55A, - 0xC33CC33C3CC33CC3, - 0xA5A55A5AA5A55A5A, - 0xFFFF0000FFFF0000, - 0x33CC33CC33CC33CC, - 0x0FF00FF0F00FF00F, - 0xFFFFFFFF00000000, - 0x6969696996969696, - 0xA5A5A5A5A5A5A5A5, - 0x5A5A5A5AA5A5A5A5, - 0xAAAA55555555AAAA, - 0x0FF00FF00FF00FF0, - 0x0F0FF0F00F0FF0F0 -} diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/scalars_2x.inc b/crypto_kem/mceliece/mceliece8192128f/vec/scalars_2x.inc deleted file mode 100644 index a0abb162..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/scalars_2x.inc +++ /dev/null @@ -1,150 +0,0 @@ -{{ - 0X3C3CF30C0000C003, - 0X0CCCC3F333C0000C, - 0X03C33F33FCC0C03C, - 0X0003000F3C03C0C0, - 0XF33FF33030CF03F0, - 0X0CF0303300F0CCC0, - 0XFF3F0C0CC0FF3CC0, - 0XCF3CF0FF003FC000, - 0XC00FF3CF0303F300, - 0X3CCC0CC00CF0CC00, - 0XF30FFC3C3FCCFC00, - 0X3F0FC3F0CCF0C000, - 0X3000FF33CCF0F000 -}, -{ - 0X0C0F0FCF0F0CF330, - 0XF0000FC33C3CCF3C, - 0X3C0F3F00C3C300FC, - 0X3C33CCC0F0F3CC30, - 0XC0CFFFFFCCCC30CC, - 0X3FC3F3CCFFFC033F, - 0XFC3030CCCCC0CFCF, - 0X0FCF0C00CCF333C3, - 0XCFFCF33000CFF030, - 0X00CFFCC330F30FCC, - 0X3CCC3FCCC0F3FFF3, - 0XF00F0C3FC003C0FF, - 0X330CCFCC03C0FC33 -}}, -{{ - 0X0F0F0FF0F000000F, - 0X00FFFFFFFF0000F0, - 0XFFFF00FF00000F00, - 0XFFF000F00F0FF000, - 0XFFF0000F0FF000F0, - 0X00FF000FFF000000, - 0XFF0F0FFF0F0FF000, - 0X0FFF0000000F0000, - 0X00F000F0FFF00F00, - 0X00F00FF00F00F000, - 0XFFF000F000F00000, - 0X00F00F000FF00000, - 0X0000FF0F0000F000 -}, -{ - 0XF0FFFFFFF0F00F00, - 0X00FFF0FFFF0000FF, - 0X00FF00000F0F0FFF, - 0XF000F0000F00FF0F, - 0XFF000000FFF00000, - 0XF0FF000FF00F0FF0, - 0X0F0F0F00FF000F0F, - 0X0F0F00F0F0F0F000, - 0X00F00F00F00F000F, - 0X00F0F0F00000FFF0, - 0XFFFFFF0FF00F0FFF, - 0X0F0FFFF00FFFFFFF, - 0XFFFF0F0FFF0FFF00 -}}, -{{ - 0X00FF0000000000FF, - 0XFFFFFFFFFF00FF00, - 0XFF0000FF00FF0000, - 0XFFFF000000FF0000, - 0XFF00000000FF0000, - 0X00FFFFFFFF000000, - 0XFF0000FFFFFF0000, - 0XFF00FF00FFFF0000, - 0X00FFFFFFFF00FF00, - 0XFFFF000000000000, - 0X00FF0000FF000000, - 0XFF00FF00FF000000, - 0X00FF00FFFF000000 -}, -{ - 0X00FF00FF00FF0000, - 0XFF00FFFF000000FF, - 0X0000FFFF000000FF, - 0X00FFFF00FF000000, - 0XFFFFFF0000FF00FF, - 0X0000FFFF00FFFF00, - 0XFF00FF0000FFFF00, - 0X00000000FFFFFFFF, - 0X0000FF0000000000, - 0XFF00FFFF00FFFF00, - 0X00FFFF00000000FF, - 0X0000FF00FF00FFFF, - 0XFF0000FFFFFF0000 -}}, -{{ - 0X000000000000FFFF, - 0XFFFFFFFFFFFF0000, - 0X0000000000000000, - 0XFFFF0000FFFF0000, - 0XFFFFFFFFFFFF0000, - 0X0000FFFF00000000, - 0X0000FFFFFFFF0000, - 0XFFFF0000FFFF0000, - 0X0000FFFF00000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFF000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000FFFF00000000, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0X0000FFFF00000000, - 0XFFFF0000FFFF0000, - 0X0000FFFFFFFF0000, - 0X0000FFFF0000FFFF, - 0XFFFFFFFF0000FFFF, - 0X00000000FFFF0000, - 0XFFFF0000FFFFFFFF, - 0XFFFF0000FFFFFFFF, - 0X0000000000000000 -}}, -{{ - 0X00000000FFFFFFFF, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0X0000000000000000, - 0X0000000000000000, - 0XFFFFFFFF00000000 -}, -{ - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X0000000000000000, - 0X0000000000000000, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0X0000000000000000, - 0XFFFFFFFFFFFFFFFF, - 0X00000000FFFFFFFF, - 0XFFFFFFFF00000000, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFFFFFFFFFF, - 0XFFFFFFFF00000000 -}} diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/scalars_4x.inc b/crypto_kem/mceliece/mceliece8192128f/vec/scalars_4x.inc deleted file mode 100644 index cbaccec7..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/scalars_4x.inc +++ /dev/null @@ -1,360 +0,0 @@ -{{ - 0x3C3CF30C0000C003, - 0x0CCCC3F333C0000C, - 0x03C33F33FCC0C03C, - 0x0003000F3C03C0C0, - 0xF33FF33030CF03F0, - 0x0CF0303300F0CCC0, - 0xFF3F0C0CC0FF3CC0, - 0xCF3CF0FF003FC000, - 0xC00FF3CF0303F300, - 0x3CCC0CC00CF0CC00, - 0xF30FFC3C3FCCFC00, - 0x3F0FC3F0CCF0C000, - 0x3000FF33CCF0F000 -}, -{ - 0x0C0F0FCF0F0CF330, - 0xF0000FC33C3CCF3C, - 0x3C0F3F00C3C300FC, - 0x3C33CCC0F0F3CC30, - 0xC0CFFFFFCCCC30CC, - 0x3FC3F3CCFFFC033F, - 0xFC3030CCCCC0CFCF, - 0x0FCF0C00CCF333C3, - 0xCFFCF33000CFF030, - 0x00CFFCC330F30FCC, - 0x3CCC3FCCC0F3FFF3, - 0xF00F0C3FC003C0FF, - 0x330CCFCC03C0FC33 -}, -{ - 0xF0F30C33CF03F03F, - 0x00F30FC00C3300FF, - 0xF3CC3CF3F3FCF33F, - 0x3C0FC0FC303C3F3C, - 0xFC30CF303F3FF00F, - 0x33300C0CC3300CF3, - 0x3C030CF3F03FF3F3, - 0x3CCC03FCCC3FFC03, - 0x033C3C3CF0003FC3, - 0xFFC0FF00F0FF0F03, - 0xF3F30CF003FCC303, - 0x30CFCFC3CC0F3000, - 0x0CF30CCF3FCFCC0F -}, -{ - 0x3F30CC0C000F3FCC, - 0xFC3CF030FC3FFF03, - 0x33FFFCFF0CCF3CC3, - 0x003CFF33C3CC30CF, - 0xCFF3CF33C00F3003, - 0x00F3CC0CF3003CCF, - 0x3C000CFCCC3C3333, - 0xF3CF03C0FCF03FF0, - 0x3F3C3CF0C330330C, - 0x33CCFCC0FF0033F0, - 0x33C300C0F0C003F3, - 0x003FF0003F00C00C, - 0xCFF3C3033F030FFF -}}, -{{ - 0x0F0F0FF0F000000F, - 0x00FFFFFFFF0000F0, - 0xFFFF00FF00000F00, - 0xFFF000F00F0FF000, - 0xFFF0000F0FF000F0, - 0x00FF000FFF000000, - 0xFF0F0FFF0F0FF000, - 0x0FFF0000000F0000, - 0x00F000F0FFF00F00, - 0x00F00FF00F00F000, - 0xFFF000F000F00000, - 0x00F00F000FF00000, - 0x0000FF0F0000F000 -}, -{ - 0xF0FFFFFFF0F00F00, - 0x00FFF0FFFF0000FF, - 0x00FF00000F0F0FFF, - 0xF000F0000F00FF0F, - 0xFF000000FFF00000, - 0xF0FF000FF00F0FF0, - 0x0F0F0F00FF000F0F, - 0x0F0F00F0F0F0F000, - 0x00F00F00F00F000F, - 0x00F0F0F00000FFF0, - 0xFFFFFF0FF00F0FFF, - 0x0F0FFFF00FFFFFFF, - 0xFFFF0F0FFF0FFF00 -}, -{ - 0x0F0F00FF0FF0FFFF, - 0xF000F0F00F00FF0F, - 0x000FFFF0FFF0FF0F, - 0x00F00FFF00000FF0, - 0xFFFFF0000FFFF00F, - 0xFFF0FFF0000FFFF0, - 0xF0F0F0000F0F0F00, - 0x00F000F0F00FFF00, - 0xF0FF0F0FFF00F0FF, - 0xF0FF0FFFF0F0F0FF, - 0x00FFFFFFFFFFFFF0, - 0x00FFF0F0FF000F0F, - 0x000FFFF0000FFF00 -}, -{ - 0xFF0F0F00F000F0FF, - 0x0FFFFFFFFF00000F, - 0xF0FFFF000F00F0FF, - 0x0F0000F00FFF0FFF, - 0x0F0F0F00FF0F000F, - 0x000F0F0FFFF0F000, - 0xF0FFFF0F00F0FF0F, - 0x0F0F000F0F00F0FF, - 0x0000F0FF00FF0F0F, - 0x00FFFF0FF0FFF0F0, - 0x0000000F00F0FFF0, - 0xF0F00000FF00F0F0, - 0x0F0F0FFFFFFFFFFF -}}, -{{ - 0x00FF0000000000FF, - 0xFFFFFFFFFF00FF00, - 0xFF0000FF00FF0000, - 0xFFFF000000FF0000, - 0xFF00000000FF0000, - 0x00FFFFFFFF000000, - 0xFF0000FFFFFF0000, - 0xFF00FF00FFFF0000, - 0x00FFFFFFFF00FF00, - 0xFFFF000000000000, - 0x00FF0000FF000000, - 0xFF00FF00FF000000, - 0x00FF00FFFF000000 -}, -{ - 0x00FF00FF00FF0000, - 0xFF00FFFF000000FF, - 0x0000FFFF000000FF, - 0x00FFFF00FF000000, - 0xFFFFFF0000FF00FF, - 0x0000FFFF00FFFF00, - 0xFF00FF0000FFFF00, - 0x00000000FFFFFFFF, - 0x0000FF0000000000, - 0xFF00FFFF00FFFF00, - 0x00FFFF00000000FF, - 0x0000FF00FF00FFFF, - 0xFF0000FFFFFF0000 -}, -{ - 0xFFFF00FF00FF00FF, - 0x00FFFF000000FF00, - 0xFFFF00FFFFFFFF00, - 0x0000FFFF00FFFFFF, - 0x00FF0000FF0000FF, - 0xFFFF0000FF00FFFF, - 0xFF000000FFFFFF00, - 0x000000000000FFFF, - 0xFF00FF00FFFF0000, - 0xFFFF00FFFF00FFFF, - 0xFFFFFFFFFF00FF00, - 0xFFFF00FFFF0000FF, - 0x0000FF00000000FF -}, -{ - 0xFF0000FFFFFF00FF, - 0xFFFF0000FFFFFFFF, - 0xFFFF000000FFFFFF, - 0x00FFFF00FF0000FF, - 0xFFFFFF00FFFFFF00, - 0x00FFFF00FFFF00FF, - 0x0000FFFF00FF0000, - 0x000000FFFF000000, - 0xFF00FF0000FF00FF, - 0x00FF0000000000FF, - 0xFF00FFFF00FF00FF, - 0xFFFFFFFFFFFFFFFF, - 0x0000FF000000FFFF -}}, -{{ - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0x0000000000000000, - 0xFFFF0000FFFF0000, - 0xFFFFFFFFFFFF0000, - 0x0000FFFF00000000, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFF0000, - 0x0000FFFF00000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFF000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000FFFF00000000, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000FFFF00000000, - 0xFFFF0000FFFF0000, - 0x0000FFFFFFFF0000, - 0x0000FFFF0000FFFF, - 0xFFFFFFFF0000FFFF, - 0x00000000FFFF0000, - 0xFFFF0000FFFFFFFF, - 0xFFFF0000FFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFF000000000000, - 0x0000FFFF00000000, - 0x00000000FFFF0000, - 0x0000FFFFFFFFFFFF, - 0x0000FFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0x000000000000FFFF, - 0x000000000000FFFF, - 0xFFFFFFFFFFFF0000, - 0xFFFFFFFF0000FFFF, - 0xFFFF0000FFFFFFFF -}, -{ - 0x0000FFFFFFFFFFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, - 0xFFFF0000FFFFFFFF, - 0x00000000FFFF0000, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0xFFFF00000000FFFF, - 0x0000FFFF0000FFFF, - 0x0000FFFF00000000, - 0xFFFFFFFF00000000, - 0x0000FFFFFFFF0000, - 0x0000FFFFFFFFFFFF -}}, -{{ - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFF00000000 -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000 -}, -{ - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x00000000FFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFF00000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFF00000000 -}}, -{{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000, - 0x0000000000000000 -}, -{ - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000 -}, -{ - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF -}, -{ - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF, - 0xFFFFFFFFFFFFFFFF, - 0x0000000000000000, - 0xFFFFFFFFFFFFFFFF -}}, diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.c b/crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.c deleted file mode 100644 index a5212c34..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - This file is for secret-key generation -*/ - -#include "sk_gen.h" - -#include "controlbits.h" -#include "gf.h" -#include "params.h" -#include "util.h" - -/* input: f, element in GF((2^m)^t) */ -/* output: out, minimal polynomial of f */ -/* return: 0 for success and -1 for failure */ -int PQCLEAN_MCELIECE8192128F_VEC_genpoly_gen(gf *out, gf *f) { - int i, j, k, c; - - gf mat[ SYS_T + 1 ][ SYS_T ]; - gf mask, inv, t; - - // fill matrix - - mat[0][0] = 1; - - for (i = 1; i < SYS_T; i++) { - mat[0][i] = 0; - } - - for (i = 0; i < SYS_T; i++) { - mat[1][i] = f[i]; - } - - for (j = 2; j <= SYS_T; j++) { - PQCLEAN_MCELIECE8192128F_VEC_GF_mul(mat[j], mat[j - 1], f); - } - - // gaussian - - for (j = 0; j < SYS_T; j++) { - for (k = j + 1; k < SYS_T; k++) { - mask = PQCLEAN_MCELIECE8192128F_VEC_gf_iszero(mat[ j ][ j ]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] ^= mat[ c ][ k ] & mask; - } - - } - - if ( mat[ j ][ j ] == 0 ) { // return if not systematic - return -1; - } - - inv = PQCLEAN_MCELIECE8192128F_VEC_gf_inv(mat[j][j]); - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ j ] = PQCLEAN_MCELIECE8192128F_VEC_gf_mul(mat[ c ][ j ], inv) ; - } - - for (k = 0; k < SYS_T; k++) { - if (k != j) { - t = mat[ j ][ k ]; - - for (c = j; c < SYS_T + 1; c++) { - mat[ c ][ k ] ^= PQCLEAN_MCELIECE8192128F_VEC_gf_mul(mat[ c ][ j ], t); - } - } - } - } - - for (i = 0; i < SYS_T; i++) { - out[i] = mat[ SYS_T ][ i ]; - } - - return 0; -} - -/* input: permutation p represented as a list of 32-bit intergers */ -/* output: -1 if some interger repeats in p */ -/* 0 otherwise */ -int PQCLEAN_MCELIECE8192128F_VEC_perm_check(const uint32_t *p) { - int i; - uint64_t list[1 << GFBITS]; - - for (i = 0; i < (1 << GFBITS); i++) { - list[i] = p[i]; - } - - PQCLEAN_MCELIECE8192128F_VEC_sort_63b(1 << GFBITS, list); - - for (i = 1; i < (1 << GFBITS); i++) { - if (list[i - 1] == list[i]) { - return -1; - } - } - - return 0; -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.h b/crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.h deleted file mode 100644 index 559aa3fe..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/sk_gen.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_SK_GEN_H -#define PQCLEAN_MCELIECE8192128F_VEC_SK_GEN_H -/* - This file is for secret-key generation -*/ - - -#include "gf.h" - -#include - -int PQCLEAN_MCELIECE8192128F_VEC_genpoly_gen(gf * /*out*/, gf * /*f*/); -int PQCLEAN_MCELIECE8192128F_VEC_perm_check(const uint32_t * /*p*/); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/transpose.c b/crypto_kem/mceliece/mceliece8192128f/vec/transpose.c deleted file mode 100644 index ccafa231..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/transpose.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "transpose.h" - -/* input: in, a 64x64 matrix over GF(2) */ -/* output: out, transpose of in */ -void PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in) { - int i, j, s, d; - - uint64_t x, y; - uint64_t masks[6][2] = { - {0x5555555555555555, 0xAAAAAAAAAAAAAAAA}, - {0x3333333333333333, 0xCCCCCCCCCCCCCCCC}, - {0x0F0F0F0F0F0F0F0F, 0xF0F0F0F0F0F0F0F0}, - {0x00FF00FF00FF00FF, 0xFF00FF00FF00FF00}, - {0x0000FFFF0000FFFF, 0xFFFF0000FFFF0000}, - {0x00000000FFFFFFFF, 0xFFFFFFFF00000000} - }; - - for (i = 0; i < 64; i++) { - out[i] = in[i]; - } - - for (d = 5; d >= 0; d--) { - s = 1 << d; - - for (i = 0; i < 64; i += s * 2) { - for (j = i; j < i + s; j++) { - x = (out[j] & masks[d][0]) | ((out[j + s] & masks[d][0]) << s); - y = ((out[j] & masks[d][1]) >> s) | (out[j + s] & masks[d][1]); - - out[j + 0] = x; - out[j + s] = y; - } - } - } -} diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/transpose.h b/crypto_kem/mceliece/mceliece8192128f/vec/transpose.h deleted file mode 100644 index af38e59d..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/transpose.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_TRANSPOSE_H -#define PQCLEAN_MCELIECE8192128F_VEC_TRANSPOSE_H -/* - This file is for matrix transposition -*/ - - -#include - - -void PQCLEAN_MCELIECE8192128F_VEC_transpose_64x64(uint64_t *out, const uint64_t *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/util.c b/crypto_kem/mceliece/mceliece8192128f/vec/util.c deleted file mode 100644 index 172b25a7..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/util.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "util.h" - -void PQCLEAN_MCELIECE8192128F_VEC_store2(unsigned char *dest, uint16_t a) { - dest[0] = a & 0xFF; - dest[1] = a >> 8; -} - -uint16_t PQCLEAN_MCELIECE8192128F_VEC_load2(const unsigned char *src) { - uint16_t a; - - a = src[1]; - a <<= 8; - a |= src[0]; - - return a & GFMASK; -} - -uint32_t PQCLEAN_MCELIECE8192128F_VEC_load4(const unsigned char *src) { - uint32_t a; - - a = src[3]; - a <<= 8; - a |= src[2]; - a <<= 8; - a |= src[1]; - a <<= 8; - a |= src[0]; - - return a; -} - -void PQCLEAN_MCELIECE8192128F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in) { - int i, j; - uint64_t v0 = 0, v1 = 0; - uint16_t irr[ SYS_T ]; - - for (i = 0; i < SYS_T; i++) { - irr[i] = PQCLEAN_MCELIECE8192128F_VEC_load2(in + i * 2); - irr[i] &= GFMASK; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 63; j >= 0; j--) { - v0 <<= 1; - v1 <<= 1; - v0 |= (irr[j] >> i) & 1; - v1 |= (irr[j + 64] >> i) & 1; - } - - out[0][i] = v0; - out[1][i] = v1; - } -} - -void PQCLEAN_MCELIECE8192128F_VEC_store8(unsigned char *out, uint64_t in) { - out[0] = (in >> 0x00) & 0xFF; - out[1] = (in >> 0x08) & 0xFF; - out[2] = (in >> 0x10) & 0xFF; - out[3] = (in >> 0x18) & 0xFF; - out[4] = (in >> 0x20) & 0xFF; - out[5] = (in >> 0x28) & 0xFF; - out[6] = (in >> 0x30) & 0xFF; - out[7] = (in >> 0x38) & 0xFF; -} - -uint64_t PQCLEAN_MCELIECE8192128F_VEC_load8(const unsigned char *in) { - int i; - uint64_t ret = in[7]; - - for (i = 6; i >= 0; i--) { - ret <<= 8; - ret |= in[i]; - } - - return ret; -} diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/util.h b/crypto_kem/mceliece/mceliece8192128f/vec/util.h deleted file mode 100644 index 0425e0ef..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/util.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_UTIL_H -#define PQCLEAN_MCELIECE8192128F_VEC_UTIL_H -/* - This file is for loading/storing data in a little-endian fashion -*/ - - -#include "vec.h" - -#include - -void PQCLEAN_MCELIECE8192128F_VEC_store2(unsigned char *dest, uint16_t a); - -uint16_t PQCLEAN_MCELIECE8192128F_VEC_load2(const unsigned char *src); - -uint32_t PQCLEAN_MCELIECE8192128F_VEC_load4(const unsigned char *src); - -void PQCLEAN_MCELIECE8192128F_VEC_irr_load(vec out[][GFBITS], const unsigned char *in); - -void PQCLEAN_MCELIECE8192128F_VEC_store8(unsigned char *out, uint64_t in); - -uint64_t PQCLEAN_MCELIECE8192128F_VEC_load8(const unsigned char *in); - -#endif - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/vec.c b/crypto_kem/mceliece/mceliece8192128f/vec/vec.c deleted file mode 100644 index b11ac043..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/vec.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "vec.h" - -#include "params.h" - -vec PQCLEAN_MCELIECE8192128F_VEC_vec_setbits(vec b) { - vec ret = -b; - - return ret; -} - -vec PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(uint16_t v) { - vec ret; - - ret = v; - ret |= ret << 16; - ret |= ret << 32; - - return ret; -} - -void PQCLEAN_MCELIECE8192128F_VEC_vec_copy(vec *out, const vec *in) { - int i; - - for (i = 0; i < GFBITS; i++) { - out[i] = in[i]; - } -} - -vec PQCLEAN_MCELIECE8192128F_VEC_vec_or_reduce(const vec *a) { - int i; - vec ret; - - ret = a[0]; - for (i = 1; i < GFBITS; i++) { - ret |= a[i]; - } - - return ret; -} - -int PQCLEAN_MCELIECE8192128F_VEC_vec_testz(vec a) { - a |= a >> 32; - a |= a >> 16; - a |= a >> 8; - a |= a >> 4; - a |= a >> 2; - a |= a >> 1; - - return (int)(a & 1) ^ 1; -} - -void PQCLEAN_MCELIECE8192128F_VEC_vec_mul(vec *h, const vec *f, const vec *g) { - int i, j; - vec buf[ 2 * GFBITS - 1 ]; - - for (i = 0; i < 2 * GFBITS - 1; i++) { - buf[i] = 0; - } - - for (i = 0; i < GFBITS; i++) { - for (j = 0; j < GFBITS; j++) { - buf[i + j] ^= f[i] & g[j]; - } - } - - for (i = 2 * GFBITS - 2; i >= GFBITS; i--) { - buf[i - GFBITS + 4] ^= buf[i]; - buf[i - GFBITS + 3] ^= buf[i]; - buf[i - GFBITS + 1] ^= buf[i]; - buf[i - GFBITS + 0] ^= buf[i]; - } - - for (i = 0; i < GFBITS; i++) { - h[i] = buf[i]; - } -} - -/* bitsliced field squarings */ -void PQCLEAN_MCELIECE8192128F_VEC_vec_sq(vec *out, const vec *in) { - int i; - vec result[GFBITS], t; - - t = in[11] ^ in[12]; - - result[0] = in[0] ^ in[11]; - result[1] = in[7] ^ t; - result[2] = in[1] ^ in[7]; - result[3] = in[8] ^ t; - result[4] = in[2] ^ in[7]; - result[4] = result[4] ^ in[8]; - result[4] = result[4] ^ t; - result[5] = in[7] ^ in[9]; - result[6] = in[3] ^ in[8]; - result[6] = result[6] ^ in[9]; - result[6] = result[6] ^ in[12]; - result[7] = in[8] ^ in[10]; - result[8] = in[4] ^ in[9]; - result[8] = result[8] ^ in[10]; - result[9] = in[9] ^ in[11]; - result[10] = in[5] ^ in[10]; - result[10] = result[10] ^ in[11]; - result[11] = in[10] ^ in[12]; - result[12] = in[6] ^ t; - - for (i = 0; i < GFBITS; i++) { - out[i] = result[i]; - } -} - -/* bitsliced field inverses */ -void PQCLEAN_MCELIECE8192128F_VEC_vec_inv(vec *out, const vec *in) { - vec tmp_11[ GFBITS ]; - vec tmp_1111[ GFBITS ]; - - PQCLEAN_MCELIECE8192128F_VEC_vec_copy(out, in); - - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(tmp_11, out, in); // ^11 - - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, tmp_11); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(tmp_1111, out, tmp_11); // ^1111 - - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, tmp_1111); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(out, out, tmp_1111); // ^11111111 - - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); - PQCLEAN_MCELIECE8192128F_VEC_vec_mul(out, out, tmp_1111); // ^111111111111 - - PQCLEAN_MCELIECE8192128F_VEC_vec_sq(out, out); // ^1111111111110 -} - diff --git a/crypto_kem/mceliece/mceliece8192128f/vec/vec.h b/crypto_kem/mceliece/mceliece8192128f/vec/vec.h deleted file mode 100644 index 2b32b426..00000000 --- a/crypto_kem/mceliece/mceliece8192128f/vec/vec.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PQCLEAN_MCELIECE8192128F_VEC_VEC_H -#define PQCLEAN_MCELIECE8192128F_VEC_VEC_H - -#include "params.h" - -#include - -typedef uint64_t vec; - -vec PQCLEAN_MCELIECE8192128F_VEC_vec_setbits(vec b); - -vec PQCLEAN_MCELIECE8192128F_VEC_vec_set1_16b(uint16_t v); - -void PQCLEAN_MCELIECE8192128F_VEC_vec_copy(vec *out, const vec *in); - -vec PQCLEAN_MCELIECE8192128F_VEC_vec_or_reduce(const vec *a); - -int PQCLEAN_MCELIECE8192128F_VEC_vec_testz(vec a); - -void PQCLEAN_MCELIECE8192128F_VEC_vec_mul(vec * /*h*/, const vec * /*f*/, const vec * /*g*/); -void PQCLEAN_MCELIECE8192128F_VEC_vec_sq(vec * /*out*/, const vec * /*in*/); -void PQCLEAN_MCELIECE8192128F_VEC_vec_inv(vec * /*out*/, const vec * /*in*/); - -#endif - diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/LICENSE b/crypto_kem/ntru/ntruhps2048509/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhps2048509/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhps2048509/clean/LICENSE b/crypto_kem/ntru/ntruhps2048509/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhps2048509/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhps2048509/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru/ntruhps2048509/clean/Makefile.Microsoft_nmake deleted file mode 100644 index de1a363d..00000000 --- a/crypto_kem/ntru/ntruhps2048509/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntruhps2048509_clean.lib -OBJECTS=cmov.obj crypto_sort_int32.obj kem.obj owcpa.obj pack3.obj packq.obj poly.obj poly_lift.obj poly_mod.obj poly_r2_inv.obj poly_rq_mul.obj poly_s3_inv.obj sample.obj sample_iid.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/LICENSE b/crypto_kem/ntru/ntruhps2048677/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhps2048677/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhps2048677/clean/LICENSE b/crypto_kem/ntru/ntruhps2048677/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhps2048677/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhps2048677/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru/ntruhps2048677/clean/Makefile.Microsoft_nmake deleted file mode 100644 index e687f2d3..00000000 --- a/crypto_kem/ntru/ntruhps2048677/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntruhps2048677_clean.lib -OBJECTS=cmov.obj crypto_sort_int32.obj kem.obj owcpa.obj pack3.obj packq.obj poly.obj poly_lift.obj poly_mod.obj poly_r2_inv.obj poly_rq_mul.obj poly_s3_inv.obj sample.obj sample_iid.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/LICENSE b/crypto_kem/ntru/ntruhps4096821/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhps4096821/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhps4096821/clean/LICENSE b/crypto_kem/ntru/ntruhps4096821/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhps4096821/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhps4096821/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru/ntruhps4096821/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 3c179806..00000000 --- a/crypto_kem/ntru/ntruhps4096821/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntruhps4096821_clean.lib -OBJECTS=cmov.obj crypto_sort_int32.obj kem.obj owcpa.obj pack3.obj packq.obj poly.obj poly_lift.obj poly_mod.obj poly_r2_inv.obj poly_rq_mul.obj poly_s3_inv.obj sample.obj sample_iid.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/ntru/ntruhrss701/avx2/LICENSE b/crypto_kem/ntru/ntruhrss701/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhrss701/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhrss701/clean/LICENSE b/crypto_kem/ntru/ntruhrss701/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru/ntruhrss701/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru/ntruhrss701/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru/ntruhrss701/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 181243e2..00000000 --- a/crypto_kem/ntru/ntruhrss701/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntruhrss701_clean.lib -OBJECTS=cmov.obj kem.obj owcpa.obj pack3.obj packq.obj poly.obj poly_lift.obj poly_mod.obj poly_r2_inv.obj poly_rq_mul.obj poly_s3_inv.obj sample.obj sample_iid.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/LICENSE b/crypto_kem/ntru_prime/ntrulpr653/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru_prime/ntrulpr653/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/LICENSE b/crypto_kem/ntru_prime/ntrulpr653/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru_prime/ntrulpr653/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru_prime/ntrulpr653/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 027d0730..00000000 --- a/crypto_kem/ntru_prime/ntrulpr653/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntrulpr653_clean.lib -OBJECTS=crypto_core_multsntrup653.obj crypto_decode_256x16.obj crypto_decode_256x2.obj crypto_decode_653x1541.obj crypto_decode_653x3.obj crypto_decode_653xint16.obj crypto_decode_653xint32.obj crypto_encode_256x16.obj crypto_encode_256x2.obj crypto_encode_653x1541.obj crypto_encode_653x1541round.obj crypto_encode_653x3.obj crypto_encode_653xint16.obj crypto_sort_int32.obj crypto_sort_uint32.obj crypto_stream_aes256ctr.obj crypto_verify_1025.obj kem.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/LICENSE b/crypto_kem/ntru_prime/ntrulpr761/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru_prime/ntrulpr761/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/LICENSE b/crypto_kem/ntru_prime/ntrulpr761/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru_prime/ntrulpr761/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru_prime/ntrulpr761/clean/Makefile.Microsoft_nmake deleted file mode 100644 index f1cf84ca..00000000 --- a/crypto_kem/ntru_prime/ntrulpr761/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntrulpr761_clean.lib -OBJECTS=crypto_core_multsntrup761.obj crypto_decode_256x16.obj crypto_decode_256x2.obj crypto_decode_761x1531.obj crypto_decode_761x3.obj crypto_decode_761xint16.obj crypto_decode_761xint32.obj crypto_encode_256x16.obj crypto_encode_256x2.obj crypto_encode_761x1531.obj crypto_encode_761x1531round.obj crypto_encode_761x3.obj crypto_encode_761xint16.obj crypto_sort_int32.obj crypto_sort_uint32.obj crypto_stream_aes256ctr.obj crypto_verify_1167.obj kem.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/LICENSE b/crypto_kem/ntru_prime/ntrulpr857/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru_prime/ntrulpr857/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/LICENSE b/crypto_kem/ntru_prime/ntrulpr857/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/ntru_prime/ntrulpr857/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/Makefile.Microsoft_nmake b/crypto_kem/ntru_prime/ntrulpr857/clean/Makefile.Microsoft_nmake deleted file mode 100644 index ae1b6943..00000000 --- a/crypto_kem/ntru_prime/ntrulpr857/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libntrulpr857_clean.lib -OBJECTS=crypto_core_multsntrup857.obj crypto_decode_256x16.obj crypto_decode_256x2.obj crypto_decode_857x1723.obj crypto_decode_857x3.obj crypto_decode_857xint16.obj crypto_decode_857xint32.obj crypto_encode_256x16.obj crypto_encode_256x2.obj crypto_encode_857x1723.obj crypto_encode_857x1723round.obj crypto_encode_857x3.obj crypto_encode_857xint16.obj crypto_sort_int32.obj crypto_sort_uint32.obj crypto_stream_aes256ctr.obj crypto_verify_1312.obj kem.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/saber/firesaber/avx2/LICENSE b/crypto_kem/saber/firesaber/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/saber/firesaber/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/saber/firesaber/clean/LICENSE b/crypto_kem/saber/firesaber/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/saber/firesaber/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/saber/firesaber/clean/Makefile.Microsoft_nmake b/crypto_kem/saber/firesaber/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 9c81fc2b..00000000 --- a/crypto_kem/saber/firesaber/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfiresaber_clean.lib -OBJECTS=cbd.obj kem.obj pack_unpack.obj poly.obj poly_mul.obj SABER_indcpa.obj verify.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/saber/lightsaber/avx2/LICENSE b/crypto_kem/saber/lightsaber/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/saber/lightsaber/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/saber/lightsaber/clean/LICENSE b/crypto_kem/saber/lightsaber/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/saber/lightsaber/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/saber/lightsaber/clean/Makefile.Microsoft_nmake b/crypto_kem/saber/lightsaber/clean/Makefile.Microsoft_nmake deleted file mode 100644 index aa569641..00000000 --- a/crypto_kem/saber/lightsaber/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=liblightsaber_clean.lib -OBJECTS=cbd.obj kem.obj pack_unpack.obj poly.obj poly_mul.obj SABER_indcpa.obj verify.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_kem/saber/saber/avx2/LICENSE b/crypto_kem/saber/saber/avx2/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/saber/saber/avx2/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/saber/saber/clean/LICENSE b/crypto_kem/saber/saber/clean/LICENSE deleted file mode 100644 index d5d21fff..00000000 --- a/crypto_kem/saber/saber/clean/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Public Domain diff --git a/crypto_kem/saber/saber/clean/Makefile.Microsoft_nmake b/crypto_kem/saber/saber/clean/Makefile.Microsoft_nmake deleted file mode 100644 index e5da243d..00000000 --- a/crypto_kem/saber/saber/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsaber_clean.lib -OBJECTS=cbd.obj kem.obj pack_unpack.obj poly.obj poly_mul.obj SABER_indcpa.obj verify.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/dilithium/dilithium2/avx2/LICENSE b/crypto_sign/dilithium/dilithium2/avx2/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_sign/dilithium/dilithium2/avx2/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_sign/dilithium/dilithium2/clean/LICENSE b/crypto_sign/dilithium/dilithium2/clean/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_sign/dilithium/dilithium2/clean/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_sign/dilithium/dilithium2/clean/Makefile.Microsoft_nmake b/crypto_sign/dilithium/dilithium2/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 410bd6ac..00000000 --- a/crypto_sign/dilithium/dilithium2/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libdilithium2_clean.lib -OBJECTS=ntt.obj packing.obj poly.obj polyvec.obj reduce.obj rounding.obj sign.obj symmetric-shake.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we need it for constant-time -# computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX /wd4146 - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/dilithium/dilithium3/avx2/LICENSE b/crypto_sign/dilithium/dilithium3/avx2/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_sign/dilithium/dilithium3/avx2/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_sign/dilithium/dilithium3/clean/LICENSE b/crypto_sign/dilithium/dilithium3/clean/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_sign/dilithium/dilithium3/clean/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_sign/dilithium/dilithium3/clean/Makefile.Microsoft_nmake b/crypto_sign/dilithium/dilithium3/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 79d38690..00000000 --- a/crypto_sign/dilithium/dilithium3/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libdilithium3_clean.lib -OBJECTS=ntt.obj packing.obj poly.obj polyvec.obj reduce.obj rounding.obj sign.obj symmetric-shake.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we need it for constant-time -# computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX /wd4146 - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/dilithium/dilithium5/avx2/LICENSE b/crypto_sign/dilithium/dilithium5/avx2/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_sign/dilithium/dilithium5/avx2/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_sign/dilithium/dilithium5/clean/LICENSE b/crypto_sign/dilithium/dilithium5/clean/LICENSE deleted file mode 100644 index 08473af7..00000000 --- a/crypto_sign/dilithium/dilithium5/clean/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/) - -For Keccak and AES we are using public-domain -code from sources and by authors listed in -comments on top of the respective files. diff --git a/crypto_sign/dilithium/dilithium5/clean/Makefile.Microsoft_nmake b/crypto_sign/dilithium/dilithium5/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 017ca211..00000000 --- a/crypto_sign/dilithium/dilithium5/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libdilithium5_clean.lib -OBJECTS=ntt.obj packing.obj poly.obj polyvec.obj reduce.obj rounding.obj sign.obj symmetric-shake.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we need it for constant-time -# computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX /wd4146 - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/falcon/falcon-1024/avx2/LICENSE b/crypto_sign/falcon/falcon-1024/avx2/LICENSE deleted file mode 100644 index 12c7b56c..00000000 --- a/crypto_sign/falcon/falcon-1024/avx2/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -\ -MIT License - -Copyright (c) 2017-2019 Falcon Project - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/crypto_sign/falcon/falcon-1024/clean/LICENSE b/crypto_sign/falcon/falcon-1024/clean/LICENSE deleted file mode 100644 index 12c7b56c..00000000 --- a/crypto_sign/falcon/falcon-1024/clean/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -\ -MIT License - -Copyright (c) 2017-2019 Falcon Project - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/crypto_sign/falcon/falcon-1024/clean/Makefile.Microsoft_nmake b/crypto_sign/falcon/falcon-1024/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 15a74498..00000000 --- a/crypto_sign/falcon/falcon-1024/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfalcon-1024_clean.lib -OBJECTS=codec.obj common.obj fft.obj fpr.obj keygen.obj pqclean.obj rng.obj sign.obj vrfy.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/falcon/falcon-512/avx2/LICENSE b/crypto_sign/falcon/falcon-512/avx2/LICENSE deleted file mode 100644 index 12c7b56c..00000000 --- a/crypto_sign/falcon/falcon-512/avx2/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -\ -MIT License - -Copyright (c) 2017-2019 Falcon Project - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/crypto_sign/falcon/falcon-512/clean/LICENSE b/crypto_sign/falcon/falcon-512/clean/LICENSE deleted file mode 100644 index 12c7b56c..00000000 --- a/crypto_sign/falcon/falcon-512/clean/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -\ -MIT License - -Copyright (c) 2017-2019 Falcon Project - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/crypto_sign/falcon/falcon-512/clean/Makefile.Microsoft_nmake b/crypto_sign/falcon/falcon-512/clean/Makefile.Microsoft_nmake deleted file mode 100644 index af9621a5..00000000 --- a/crypto_sign/falcon/falcon-512/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,23 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libfalcon-512_clean.lib -OBJECTS=codec.obj common.obj fft.obj fpr.obj keygen.obj pqclean.obj rng.obj sign.obj vrfy.obj - -# Warning C4146 is raised when a unary minus operator is applied to an -# unsigned type; this has nonetheless been standard and portable for as -# long as there has been a C standard, and we do that a lot, especially -# for constant-time computations. Thus, we disable that spurious warning. -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /wd4146 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/LICENSE b/crypto_sign/rainbow/rainbowI-classic/clean/LICENSE deleted file mode 100644 index cb00a6e3..00000000 --- a/crypto_sign/rainbow/rainbowI-classic/clean/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -`Software implementation of Rainbow for NIST R2 submission' by Ming-Shing Chen - -To the extent possible under law, the person who associated CC0 with -`Software implementation of Rainbow for NIST R2 submission' has waived all copyright and related or neighboring rights -to `Software implementation of Rainbow for NIST R2 submission'. - -You should have received a copy of the CC0 legalcode along with this -work. If not, see . diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/Makefile.Microsoft_nmake b/crypto_sign/rainbow/rainbowI-classic/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 5091e3a1..00000000 --- a/crypto_sign/rainbow/rainbowI-classic/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=librainbowI-classic_clean.lib -OBJECTS = blas_comm.obj parallel_matrix_op.obj rainbow.obj rainbow_keypair.obj rainbow_keypair_computation.obj sign.obj utils_hash.obj utils_prng.obj blas.obj gf.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/LICENSE b/crypto_sign/rainbow/rainbowIII-classic/clean/LICENSE deleted file mode 100644 index cb00a6e3..00000000 --- a/crypto_sign/rainbow/rainbowIII-classic/clean/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -`Software implementation of Rainbow for NIST R2 submission' by Ming-Shing Chen - -To the extent possible under law, the person who associated CC0 with -`Software implementation of Rainbow for NIST R2 submission' has waived all copyright and related or neighboring rights -to `Software implementation of Rainbow for NIST R2 submission'. - -You should have received a copy of the CC0 legalcode along with this -work. If not, see . diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/Makefile.Microsoft_nmake b/crypto_sign/rainbow/rainbowIII-classic/clean/Makefile.Microsoft_nmake deleted file mode 100644 index f94fcf58..00000000 --- a/crypto_sign/rainbow/rainbowIII-classic/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=librainbowIII-classic_clean.lib -OBJECTS = blas_comm.obj parallel_matrix_op.obj rainbow.obj rainbow_keypair.obj rainbow_keypair_computation.obj sign.obj utils_hash.obj utils_prng.obj blas.obj gf.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/LICENSE b/crypto_sign/rainbow/rainbowV-classic/clean/LICENSE deleted file mode 100644 index cb00a6e3..00000000 --- a/crypto_sign/rainbow/rainbowV-classic/clean/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -`Software implementation of Rainbow for NIST R2 submission' by Ming-Shing Chen - -To the extent possible under law, the person who associated CC0 with -`Software implementation of Rainbow for NIST R2 submission' has waived all copyright and related or neighboring rights -to `Software implementation of Rainbow for NIST R2 submission'. - -You should have received a copy of the CC0 legalcode along with this -work. If not, see . diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/Makefile.Microsoft_nmake b/crypto_sign/rainbow/rainbowV-classic/clean/Makefile.Microsoft_nmake deleted file mode 100644 index e828be35..00000000 --- a/crypto_sign/rainbow/rainbowV-classic/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=librainbowV-classic_clean.lib -OBJECTS = blas_comm.obj parallel_matrix_op.obj rainbow.obj rainbow_keypair.obj rainbow_keypair_computation.obj sign.obj utils_hash.obj utils_prng.obj blas.obj gf.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 59cdd00d..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128f-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj hash_sha256x8.obj thash_sha256_robustx8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 87e8e4e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128f-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 46808d05..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128f-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj hash_sha256x8.obj thash_sha256_simplex8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 350ddf6b..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128f-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 1669d5b7..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128s-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj hash_sha256x8.obj thash_sha256_robustx8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index c4910fcf..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128s-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index ec4f2083..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128s-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj hash_sha256x8.obj thash_sha256_simplex8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 1a81c61f..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-128s-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 21154fd4..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192f-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj hash_sha256x8.obj thash_sha256_robustx8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index fd0c6307..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192f-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 80415f2a..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192f-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj hash_sha256x8.obj thash_sha256_simplex8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index f0670be0..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192f-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 13e3a3eb..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192s-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj hash_sha256x8.obj thash_sha256_robustx8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 23f26b7d..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192s-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index c1fdc0fb..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192s-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj hash_sha256x8.obj thash_sha256_simplex8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 6221a3d8..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-192s-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 6054b4cf..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256f-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj hash_sha256x8.obj thash_sha256_robustx8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index e38bc824..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256f-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 769d1e94..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256f-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj hash_sha256x8.obj thash_sha256_simplex8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 67ebaea2..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256f-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index ac9c3743..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256s-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj hash_sha256x8.obj thash_sha256_robustx8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index b21f15f2..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256s-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_robust.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index b276945c..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256s-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx8.obj sha256avx.obj sha256x8.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj hash_sha256x8.obj thash_sha256_simplex8.obj sha256.obj - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index cf1372b2..00000000 --- a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-sha256-256s-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_sha256.obj thash_sha256_simple.obj sha256.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 0c125655..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128f-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj hash_shake256x4.obj thash_shake256_robustx4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index c08343c8..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128f-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index dd27016b..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128f-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj hash_shake256x4.obj thash_shake256_simplex4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index b1892878..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128f-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index ff36d1f9..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128s-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj hash_shake256x4.obj thash_shake256_robustx4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): $(KECCAK4XDIR)/*.c $(KECCAK4XDIR)/*.h $(KECCAK4XDIR)/*.macros - cd $(KECCAK4XDIR) && $(MAKE) /$(MAKEFLAGS) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index ec29e38b..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128s-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index a887d7a1..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128s-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj hash_shake256x4.obj thash_shake256_simplex4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index de8b00bc..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-128s-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 4b4e5134..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192f-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj hash_shake256x4.obj thash_shake256_robustx4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 77185f6d..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192f-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 2b992f30..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192f-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj hash_shake256x4.obj thash_shake256_simplex4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 91f5e2c0..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192f-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index fdc95802..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192s-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj hash_shake256x4.obj thash_shake256_robustx4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 3dd9feae..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192s-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 2dd3cad1..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192s-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj hash_shake256x4.obj thash_shake256_simplex4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 181e5150..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-192s-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 1e3e7283..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256f-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj hash_shake256x4.obj thash_shake256_robustx4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index b92851bd..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256f-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index ca4d7574..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256f-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj hash_shake256x4.obj thash_shake256_simplex4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 1d3039dd..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256f-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index f8d7b1db..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256s-robust_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj hash_shake256x4.obj thash_shake256_robustx4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/Makefile.Microsoft_nmake deleted file mode 100644 index d82657dc..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256s-robust_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_robust.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/Makefile.Microsoft_nmake deleted file mode 100644 index 1aeed608..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/Makefile.Microsoft_nmake +++ /dev/null @@ -1,27 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256s-simple_avx2.lib -OBJECTS=address.obj wots.obj utils.obj utilsx4.obj fips202x4.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj hash_shake256x4.obj thash_shake256_simplex4.obj - -KECCAK4XDIR=..\..\..\common\keccak4x -KECCAK4XOBJ=KeccakP-1600-times4-SIMD256.obj -KECCAK4X=$(KECCAK4XDIR)\$(KECCAK4XOBJ) - -CFLAGS=/nologo /arch:AVX2 /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) $(KECCAK4X) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -$(KECCAK4X): - cd $(KECCAK4XDIR) && $(MAKE) /f Makefile.Microsoft_nmake $(KECCAK4XOBJ) - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) - -DEL $(KECCAK4X) diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/LICENSE b/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/LICENSE deleted file mode 100644 index 670154e3..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/LICENSE +++ /dev/null @@ -1,116 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/Makefile.Microsoft_nmake b/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/Makefile.Microsoft_nmake deleted file mode 100644 index 2a90fa69..00000000 --- a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/Makefile.Microsoft_nmake +++ /dev/null @@ -1,19 +0,0 @@ -# This Makefile can be used with Microsoft Visual Studio's nmake using the command: -# nmake /f Makefile.Microsoft_nmake - -LIBRARY=libsphincs-shake256-256s-simple_clean.lib -OBJECTS=address.obj wots.obj utils.obj fors.obj sign.obj hash_shake256.obj thash_shake256_simple.obj - -CFLAGS=/nologo /O2 /I ..\..\..\common /W4 /WX - -all: $(LIBRARY) - -# Make sure objects are recompiled if headers change. -$(OBJECTS): *.h - -$(LIBRARY): $(OBJECTS) - LIB.EXE /NOLOGO /WX /OUT:$@ $** - -clean: - -DEL $(OBJECTS) - -DEL $(LIBRARY) diff --git a/src/common/Makefile b/src/common/Makefile new file mode 100644 index 00000000..7cf72008 --- /dev/null +++ b/src/common/Makefile @@ -0,0 +1,22 @@ +# This Makefile can be used with GNU Make or BSD Make + +LIB=libcommon.a +HEADERS= fips202.h aes.h sha2.h randombytes.h sp800-185.h nistseedexpander.h cpucycles.h speed_print.h +OBJECTS= fips202.o aes.o sha2.o randombytes.o sp800-185.o nistseedexpander.o cpucycles.o speed_print.o + +CFLAGS=-O3 -march=native -mtune=native -flto -mavx2 -maes -mbmi2 -Wall -Wextra -Wpedantic -Wvla -Wredundant-decls -Wmissing-prototypes -std=gnu99 $(EXTRAFLAGS) + +all: $(LIB) + +%.o: %.s $(HEADERS) + $(AS) -o $@ $< + +%.o: %.c $(HEADERS) + $(CC) $(CFLAGS) -c -o $@ $< + +$(LIB): $(OBJECTS) + $(AR) -r $@ $(OBJECTS) + +clean: + $(RM) $(OBJECTS) + $(RM) $(LIB) diff --git a/common/aes.c b/src/common/aes.c similarity index 100% rename from common/aes.c rename to src/common/aes.c diff --git a/common/aes.h b/src/common/aes.h similarity index 100% rename from common/aes.h rename to src/common/aes.h diff --git a/src/common/cpucycles.c b/src/common/cpucycles.c new file mode 100644 index 00000000..d95ba3af --- /dev/null +++ b/src/common/cpucycles.c @@ -0,0 +1,17 @@ +#include +#include "cpucycles.h" + +uint64_t cpucycles_overhead(void) { + uint64_t t0, t1, overhead = -1LL; + unsigned int i; + + for(i=0;i<100000;i++) { + t0 = cpucycles(); + __asm__ volatile (""); + t1 = cpucycles(); + if(t1 - t0 < overhead) + overhead = t1 - t0; + } + + return overhead; +} diff --git a/src/common/cpucycles.h b/src/common/cpucycles.h new file mode 100644 index 00000000..7b7b9f79 --- /dev/null +++ b/src/common/cpucycles.h @@ -0,0 +1,33 @@ +#ifndef CPUCYCLES_H +#define CPUCYCLES_H + +#include + +#ifdef USE_RDPMC /* Needs echo 2 > /sys/devices/cpu/rdpmc */ + +static inline uint64_t cpucycles(void) { + const uint32_t ecx = (1U << 30) + 1; + uint64_t result; + + __asm__ volatile ("rdpmc; shlq $32,%%rdx; orq %%rdx,%%rax" + : "=a" (result) : "c" (ecx) : "rdx"); + + return result; +} + +#else + +static inline uint64_t cpucycles(void) { + uint64_t result; + + __asm__ volatile ("rdtsc; shlq $32,%%rdx; orq %%rdx,%%rax" + : "=a" (result) : : "%rdx"); + + return result; +} + +#endif + +uint64_t cpucycles_overhead(void); + +#endif diff --git a/common/fips202.c b/src/common/fips202.c similarity index 100% rename from common/fips202.c rename to src/common/fips202.c diff --git a/common/fips202.h b/src/common/fips202.h similarity index 100% rename from common/fips202.h rename to src/common/fips202.h diff --git a/common/keccak4x/KeccakP-1600-times4-SIMD256.c b/src/common/keccak4x/KeccakP-1600-times4-SIMD256.c similarity index 100% rename from common/keccak4x/KeccakP-1600-times4-SIMD256.c rename to src/common/keccak4x/KeccakP-1600-times4-SIMD256.c diff --git a/common/keccak4x/KeccakP-1600-times4-SnP.h b/src/common/keccak4x/KeccakP-1600-times4-SnP.h similarity index 100% rename from common/keccak4x/KeccakP-1600-times4-SnP.h rename to src/common/keccak4x/KeccakP-1600-times4-SnP.h diff --git a/common/keccak4x/KeccakP-1600-unrolling.macros b/src/common/keccak4x/KeccakP-1600-unrolling.macros similarity index 100% rename from common/keccak4x/KeccakP-1600-unrolling.macros rename to src/common/keccak4x/KeccakP-1600-unrolling.macros diff --git a/common/keccak4x/SIMD256-config.h b/src/common/keccak4x/SIMD256-config.h similarity index 100% rename from common/keccak4x/SIMD256-config.h rename to src/common/keccak4x/SIMD256-config.h diff --git a/common/keccak4x/align.h b/src/common/keccak4x/align.h similarity index 100% rename from common/keccak4x/align.h rename to src/common/keccak4x/align.h diff --git a/common/keccak4x/brg_endian.h b/src/common/keccak4x/brg_endian.h similarity index 100% rename from common/keccak4x/brg_endian.h rename to src/common/keccak4x/brg_endian.h diff --git a/common/nistseedexpander.c b/src/common/nistseedexpander.c similarity index 100% rename from common/nistseedexpander.c rename to src/common/nistseedexpander.c diff --git a/common/nistseedexpander.h b/src/common/nistseedexpander.h similarity index 100% rename from common/nistseedexpander.h rename to src/common/nistseedexpander.h diff --git a/common/randombytes.c b/src/common/randombytes.c similarity index 100% rename from common/randombytes.c rename to src/common/randombytes.c diff --git a/common/randombytes.h b/src/common/randombytes.h similarity index 100% rename from common/randombytes.h rename to src/common/randombytes.h diff --git a/common/sha2.c b/src/common/sha2.c similarity index 100% rename from common/sha2.c rename to src/common/sha2.c diff --git a/common/sha2.h b/src/common/sha2.h similarity index 100% rename from common/sha2.h rename to src/common/sha2.h diff --git a/common/sp800-185.c b/src/common/sp800-185.c similarity index 100% rename from common/sp800-185.c rename to src/common/sp800-185.c diff --git a/common/sp800-185.h b/src/common/sp800-185.h similarity index 100% rename from common/sp800-185.h rename to src/common/sp800-185.h diff --git a/src/common/speed_print.c b/src/common/speed_print.c new file mode 100644 index 00000000..59f147de --- /dev/null +++ b/src/common/speed_print.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include "cpucycles.h" +#include "speed_print.h" + +static int cmp_uint64(const void *a, const void *b) { + if(*(uint64_t *)a < *(uint64_t *)b) return -1; + if(*(uint64_t *)a > *(uint64_t *)b) return 1; + return 0; +} + +static uint64_t median(uint64_t *l, size_t llen) { + qsort(l,llen,sizeof(uint64_t),cmp_uint64); + + if(llen%2) return l[llen/2]; + else return (l[llen/2-1]+l[llen/2])/2; +} + +static uint64_t average(uint64_t *t, size_t tlen) { + size_t i; + uint64_t acc=0; + + for(i=0;i +#include + +void print_results(const char *s, uint64_t *t, size_t tlen); + +#endif diff --git a/src/kem/frodo/frodokem1344shake/clean/CMakeLists.txt b/src/kem/frodo/frodokem1344shake/clean/CMakeLists.txt new file mode 100644 index 00000000..93fa2d48 --- /dev/null +++ b/src/kem/frodo/frodokem1344shake/clean/CMakeLists.txt @@ -0,0 +1,10 @@ +set( + SRC_CLEAN_FRODOKEM1344SHAKE + kem.c + matrix_shake.c + noise.c + util.c +) + +define_kem_alg(frodo1344shake_clean + PQCLEAN_FRODOKEM1344SHAKE_OPT "${SRC_CLEAN_FRODOKEM1344SHAKE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/frodo/frodokem1344shake/opt/api.h b/src/kem/frodo/frodokem1344shake/clean/api.h similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/api.h rename to src/kem/frodo/frodokem1344shake/clean/api.h diff --git a/crypto_kem/frodo/frodokem1344shake/opt/common.h b/src/kem/frodo/frodokem1344shake/clean/common.h similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/common.h rename to src/kem/frodo/frodokem1344shake/clean/common.h diff --git a/crypto_kem/frodo/frodokem1344shake/opt/kem.c b/src/kem/frodo/frodokem1344shake/clean/kem.c similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/kem.c rename to src/kem/frodo/frodokem1344shake/clean/kem.c diff --git a/crypto_kem/frodo/frodokem1344shake/opt/matrix_shake.c b/src/kem/frodo/frodokem1344shake/clean/matrix_shake.c similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/matrix_shake.c rename to src/kem/frodo/frodokem1344shake/clean/matrix_shake.c diff --git a/crypto_kem/frodo/frodokem1344shake/opt/noise.c b/src/kem/frodo/frodokem1344shake/clean/noise.c similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/noise.c rename to src/kem/frodo/frodokem1344shake/clean/noise.c diff --git a/crypto_kem/frodo/frodokem1344shake/opt/params.h b/src/kem/frodo/frodokem1344shake/clean/params.h similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/params.h rename to src/kem/frodo/frodokem1344shake/clean/params.h diff --git a/crypto_kem/frodo/frodokem1344shake/opt/util.c b/src/kem/frodo/frodokem1344shake/clean/util.c similarity index 100% rename from crypto_kem/frodo/frodokem1344shake/opt/util.c rename to src/kem/frodo/frodokem1344shake/clean/util.c diff --git a/src/kem/frodo/frodokem640shake/clean/CMakeLists.txt b/src/kem/frodo/frodokem640shake/clean/CMakeLists.txt new file mode 100644 index 00000000..001e257f --- /dev/null +++ b/src/kem/frodo/frodokem640shake/clean/CMakeLists.txt @@ -0,0 +1,10 @@ +set( + SRC_CLEAN_FRODOKEM640SHAKE + kem.c + matrix_shake.c + noise.c + util.c +) + +define_kem_alg(frodo640shake_clean + PQCLEAN_FRODOKEM640SHAKE_OPT "${SRC_CLEAN_FRODOKEM640SHAKE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/frodo/frodokem640shake/opt/api.h b/src/kem/frodo/frodokem640shake/clean/api.h similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/api.h rename to src/kem/frodo/frodokem640shake/clean/api.h diff --git a/crypto_kem/frodo/frodokem640shake/opt/common.h b/src/kem/frodo/frodokem640shake/clean/common.h similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/common.h rename to src/kem/frodo/frodokem640shake/clean/common.h diff --git a/crypto_kem/frodo/frodokem640shake/opt/kem.c b/src/kem/frodo/frodokem640shake/clean/kem.c similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/kem.c rename to src/kem/frodo/frodokem640shake/clean/kem.c diff --git a/crypto_kem/frodo/frodokem640shake/opt/matrix_shake.c b/src/kem/frodo/frodokem640shake/clean/matrix_shake.c similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/matrix_shake.c rename to src/kem/frodo/frodokem640shake/clean/matrix_shake.c diff --git a/crypto_kem/frodo/frodokem640shake/opt/noise.c b/src/kem/frodo/frodokem640shake/clean/noise.c similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/noise.c rename to src/kem/frodo/frodokem640shake/clean/noise.c diff --git a/crypto_kem/frodo/frodokem640shake/opt/params.h b/src/kem/frodo/frodokem640shake/clean/params.h similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/params.h rename to src/kem/frodo/frodokem640shake/clean/params.h diff --git a/crypto_kem/frodo/frodokem640shake/opt/util.c b/src/kem/frodo/frodokem640shake/clean/util.c similarity index 100% rename from crypto_kem/frodo/frodokem640shake/opt/util.c rename to src/kem/frodo/frodokem640shake/clean/util.c diff --git a/src/kem/frodo/frodokem976shake/clean/CMakeLists.txt b/src/kem/frodo/frodokem976shake/clean/CMakeLists.txt new file mode 100644 index 00000000..d1ecefa6 --- /dev/null +++ b/src/kem/frodo/frodokem976shake/clean/CMakeLists.txt @@ -0,0 +1,10 @@ +set( + SRC_CLEAN_FRODOKEM976SHAKE + kem.c + matrix_shake.c + noise.c + util.c +) + +define_kem_alg(frodo976shake_clean + PQCLEAN_FRODOKEM976SHAKE_OPT "${SRC_CLEAN_FRODOKEM976SHAKE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/frodo/frodokem976shake/opt/api.h b/src/kem/frodo/frodokem976shake/clean/api.h similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/api.h rename to src/kem/frodo/frodokem976shake/clean/api.h diff --git a/crypto_kem/frodo/frodokem976shake/opt/common.h b/src/kem/frodo/frodokem976shake/clean/common.h similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/common.h rename to src/kem/frodo/frodokem976shake/clean/common.h diff --git a/crypto_kem/frodo/frodokem976shake/opt/kem.c b/src/kem/frodo/frodokem976shake/clean/kem.c similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/kem.c rename to src/kem/frodo/frodokem976shake/clean/kem.c diff --git a/crypto_kem/frodo/frodokem976shake/opt/matrix_shake.c b/src/kem/frodo/frodokem976shake/clean/matrix_shake.c similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/matrix_shake.c rename to src/kem/frodo/frodokem976shake/clean/matrix_shake.c diff --git a/crypto_kem/frodo/frodokem976shake/opt/noise.c b/src/kem/frodo/frodokem976shake/clean/noise.c similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/noise.c rename to src/kem/frodo/frodokem976shake/clean/noise.c diff --git a/crypto_kem/frodo/frodokem976shake/opt/params.h b/src/kem/frodo/frodokem976shake/clean/params.h similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/params.h rename to src/kem/frodo/frodokem976shake/clean/params.h diff --git a/crypto_kem/frodo/frodokem976shake/opt/util.c b/src/kem/frodo/frodokem976shake/clean/util.c similarity index 100% rename from crypto_kem/frodo/frodokem976shake/opt/util.c rename to src/kem/frodo/frodokem976shake/clean/util.c diff --git a/src/kem/kyber/kyber1024/avx2/CMakeLists.txt b/src/kem/kyber/kyber1024/avx2/CMakeLists.txt new file mode 100644 index 00000000..78d6bb20 --- /dev/null +++ b/src/kem/kyber/kyber1024/avx2/CMakeLists.txt @@ -0,0 +1,21 @@ +set( + SRC_AVX2_KYBER1024 + basemul.S + cbd.c + consts.c + fips202x4.c + fq.S + indcpa.c + invntt.S + kem.c + ntt.S + poly.c + polyvec.c + rejsample.c + shuffle.S + symmetric-shake.c + verify.c +) + +define_kem_alg(kyber1024_avx2 + PQCLEAN_KYBER1024_AVX2 "${SRC_AVX2_KYBER1024}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/kyber/kyber1024/avx2/align.h b/src/kem/kyber/kyber1024/avx2/align.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/align.h rename to src/kem/kyber/kyber1024/avx2/align.h diff --git a/crypto_kem/kyber/kyber1024/avx2/api.h b/src/kem/kyber/kyber1024/avx2/api.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/api.h rename to src/kem/kyber/kyber1024/avx2/api.h diff --git a/crypto_kem/kyber/kyber1024/avx2/basemul.S b/src/kem/kyber/kyber1024/avx2/basemul.S similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/basemul.S rename to src/kem/kyber/kyber1024/avx2/basemul.S diff --git a/crypto_kem/kyber/kyber1024/avx2/cbd.c b/src/kem/kyber/kyber1024/avx2/cbd.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/cbd.c rename to src/kem/kyber/kyber1024/avx2/cbd.c diff --git a/crypto_kem/kyber/kyber1024/avx2/cbd.h b/src/kem/kyber/kyber1024/avx2/cbd.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/cbd.h rename to src/kem/kyber/kyber1024/avx2/cbd.h diff --git a/crypto_kem/kyber/kyber1024/avx2/cdecl.h b/src/kem/kyber/kyber1024/avx2/cdecl.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/cdecl.h rename to src/kem/kyber/kyber1024/avx2/cdecl.h diff --git a/crypto_kem/kyber/kyber1024/avx2/consts.c b/src/kem/kyber/kyber1024/avx2/consts.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/consts.c rename to src/kem/kyber/kyber1024/avx2/consts.c diff --git a/crypto_kem/kyber/kyber1024/avx2/consts.h b/src/kem/kyber/kyber1024/avx2/consts.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/consts.h rename to src/kem/kyber/kyber1024/avx2/consts.h diff --git a/crypto_kem/kyber/kyber1024/avx2/fips202x4.c b/src/kem/kyber/kyber1024/avx2/fips202x4.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/fips202x4.c rename to src/kem/kyber/kyber1024/avx2/fips202x4.c diff --git a/crypto_kem/kyber/kyber1024/avx2/fips202x4.h b/src/kem/kyber/kyber1024/avx2/fips202x4.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/fips202x4.h rename to src/kem/kyber/kyber1024/avx2/fips202x4.h diff --git a/crypto_kem/kyber/kyber1024/avx2/fq.S b/src/kem/kyber/kyber1024/avx2/fq.S similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/fq.S rename to src/kem/kyber/kyber1024/avx2/fq.S diff --git a/crypto_kem/kyber/kyber1024/avx2/fq.inc b/src/kem/kyber/kyber1024/avx2/fq.inc similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/fq.inc rename to src/kem/kyber/kyber1024/avx2/fq.inc diff --git a/crypto_kem/kyber/kyber1024/avx2/indcpa.c b/src/kem/kyber/kyber1024/avx2/indcpa.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/indcpa.c rename to src/kem/kyber/kyber1024/avx2/indcpa.c diff --git a/crypto_kem/kyber/kyber1024/avx2/indcpa.h b/src/kem/kyber/kyber1024/avx2/indcpa.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/indcpa.h rename to src/kem/kyber/kyber1024/avx2/indcpa.h diff --git a/crypto_kem/kyber/kyber1024/avx2/invntt.S b/src/kem/kyber/kyber1024/avx2/invntt.S similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/invntt.S rename to src/kem/kyber/kyber1024/avx2/invntt.S diff --git a/crypto_kem/kyber/kyber1024/avx2/kem.c b/src/kem/kyber/kyber1024/avx2/kem.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/kem.c rename to src/kem/kyber/kyber1024/avx2/kem.c diff --git a/crypto_kem/kyber/kyber1024/avx2/kem.h b/src/kem/kyber/kyber1024/avx2/kem.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/kem.h rename to src/kem/kyber/kyber1024/avx2/kem.h diff --git a/crypto_kem/kyber/kyber1024/avx2/ntt.S b/src/kem/kyber/kyber1024/avx2/ntt.S similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/ntt.S rename to src/kem/kyber/kyber1024/avx2/ntt.S diff --git a/crypto_kem/kyber/kyber1024/avx2/ntt.h b/src/kem/kyber/kyber1024/avx2/ntt.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/ntt.h rename to src/kem/kyber/kyber1024/avx2/ntt.h diff --git a/crypto_kem/kyber/kyber1024/avx2/params.h b/src/kem/kyber/kyber1024/avx2/params.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/params.h rename to src/kem/kyber/kyber1024/avx2/params.h diff --git a/crypto_kem/kyber/kyber1024/avx2/poly.c b/src/kem/kyber/kyber1024/avx2/poly.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/poly.c rename to src/kem/kyber/kyber1024/avx2/poly.c diff --git a/crypto_kem/kyber/kyber1024/avx2/poly.h b/src/kem/kyber/kyber1024/avx2/poly.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/poly.h rename to src/kem/kyber/kyber1024/avx2/poly.h diff --git a/crypto_kem/kyber/kyber1024/avx2/polyvec.c b/src/kem/kyber/kyber1024/avx2/polyvec.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/polyvec.c rename to src/kem/kyber/kyber1024/avx2/polyvec.c diff --git a/crypto_kem/kyber/kyber1024/avx2/polyvec.h b/src/kem/kyber/kyber1024/avx2/polyvec.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/polyvec.h rename to src/kem/kyber/kyber1024/avx2/polyvec.h diff --git a/crypto_kem/kyber/kyber1024/avx2/reduce.h b/src/kem/kyber/kyber1024/avx2/reduce.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/reduce.h rename to src/kem/kyber/kyber1024/avx2/reduce.h diff --git a/crypto_kem/kyber/kyber1024/avx2/rejsample.c b/src/kem/kyber/kyber1024/avx2/rejsample.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/rejsample.c rename to src/kem/kyber/kyber1024/avx2/rejsample.c diff --git a/crypto_kem/kyber/kyber1024/avx2/rejsample.h b/src/kem/kyber/kyber1024/avx2/rejsample.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/rejsample.h rename to src/kem/kyber/kyber1024/avx2/rejsample.h diff --git a/crypto_kem/kyber/kyber1024/avx2/shuffle.S b/src/kem/kyber/kyber1024/avx2/shuffle.S similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/shuffle.S rename to src/kem/kyber/kyber1024/avx2/shuffle.S diff --git a/crypto_kem/kyber/kyber1024/avx2/shuffle.inc b/src/kem/kyber/kyber1024/avx2/shuffle.inc similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/shuffle.inc rename to src/kem/kyber/kyber1024/avx2/shuffle.inc diff --git a/crypto_kem/kyber/kyber1024/avx2/symmetric-shake.c b/src/kem/kyber/kyber1024/avx2/symmetric-shake.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/symmetric-shake.c rename to src/kem/kyber/kyber1024/avx2/symmetric-shake.c diff --git a/crypto_kem/kyber/kyber1024/avx2/symmetric.h b/src/kem/kyber/kyber1024/avx2/symmetric.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/symmetric.h rename to src/kem/kyber/kyber1024/avx2/symmetric.h diff --git a/crypto_kem/kyber/kyber1024/avx2/verify.c b/src/kem/kyber/kyber1024/avx2/verify.c similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/verify.c rename to src/kem/kyber/kyber1024/avx2/verify.c diff --git a/crypto_kem/kyber/kyber1024/avx2/verify.h b/src/kem/kyber/kyber1024/avx2/verify.h similarity index 100% rename from crypto_kem/kyber/kyber1024/avx2/verify.h rename to src/kem/kyber/kyber1024/avx2/verify.h diff --git a/src/kem/kyber/kyber1024/clean/CMakeLists.txt b/src/kem/kyber/kyber1024/clean/CMakeLists.txt new file mode 100644 index 00000000..16176d48 --- /dev/null +++ b/src/kem/kyber/kyber1024/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_KYBER1024 + cbd.c + indcpa.c + kem.c + ntt.c + poly.c + polyvec.c + reduce.c + symmetric-shake.c + verify.c +) + +define_kem_alg(kyber1024_clean + PQCLEAN_KYBER1024_CLEAN "${SRC_CLEAN_KYBER1024}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/kyber/kyber1024/clean/api.h b/src/kem/kyber/kyber1024/clean/api.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/api.h rename to src/kem/kyber/kyber1024/clean/api.h diff --git a/crypto_kem/kyber/kyber1024/clean/cbd.c b/src/kem/kyber/kyber1024/clean/cbd.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/cbd.c rename to src/kem/kyber/kyber1024/clean/cbd.c diff --git a/crypto_kem/kyber/kyber1024/clean/cbd.h b/src/kem/kyber/kyber1024/clean/cbd.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/cbd.h rename to src/kem/kyber/kyber1024/clean/cbd.h diff --git a/crypto_kem/kyber/kyber1024/clean/indcpa.c b/src/kem/kyber/kyber1024/clean/indcpa.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/indcpa.c rename to src/kem/kyber/kyber1024/clean/indcpa.c diff --git a/crypto_kem/kyber/kyber1024/clean/indcpa.h b/src/kem/kyber/kyber1024/clean/indcpa.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/indcpa.h rename to src/kem/kyber/kyber1024/clean/indcpa.h diff --git a/crypto_kem/kyber/kyber1024/clean/kem.c b/src/kem/kyber/kyber1024/clean/kem.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/kem.c rename to src/kem/kyber/kyber1024/clean/kem.c diff --git a/crypto_kem/kyber/kyber1024/clean/kem.h b/src/kem/kyber/kyber1024/clean/kem.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/kem.h rename to src/kem/kyber/kyber1024/clean/kem.h diff --git a/crypto_kem/kyber/kyber1024/clean/ntt.c b/src/kem/kyber/kyber1024/clean/ntt.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/ntt.c rename to src/kem/kyber/kyber1024/clean/ntt.c diff --git a/crypto_kem/kyber/kyber1024/clean/ntt.h b/src/kem/kyber/kyber1024/clean/ntt.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/ntt.h rename to src/kem/kyber/kyber1024/clean/ntt.h diff --git a/crypto_kem/kyber/kyber1024/clean/params.h b/src/kem/kyber/kyber1024/clean/params.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/params.h rename to src/kem/kyber/kyber1024/clean/params.h diff --git a/crypto_kem/kyber/kyber1024/clean/poly.c b/src/kem/kyber/kyber1024/clean/poly.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/poly.c rename to src/kem/kyber/kyber1024/clean/poly.c diff --git a/crypto_kem/kyber/kyber1024/clean/poly.h b/src/kem/kyber/kyber1024/clean/poly.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/poly.h rename to src/kem/kyber/kyber1024/clean/poly.h diff --git a/crypto_kem/kyber/kyber1024/clean/polyvec.c b/src/kem/kyber/kyber1024/clean/polyvec.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/polyvec.c rename to src/kem/kyber/kyber1024/clean/polyvec.c diff --git a/crypto_kem/kyber/kyber1024/clean/polyvec.h b/src/kem/kyber/kyber1024/clean/polyvec.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/polyvec.h rename to src/kem/kyber/kyber1024/clean/polyvec.h diff --git a/crypto_kem/kyber/kyber1024/clean/reduce.c b/src/kem/kyber/kyber1024/clean/reduce.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/reduce.c rename to src/kem/kyber/kyber1024/clean/reduce.c diff --git a/crypto_kem/kyber/kyber1024/clean/reduce.h b/src/kem/kyber/kyber1024/clean/reduce.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/reduce.h rename to src/kem/kyber/kyber1024/clean/reduce.h diff --git a/crypto_kem/kyber/kyber1024/clean/symmetric-shake.c b/src/kem/kyber/kyber1024/clean/symmetric-shake.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/symmetric-shake.c rename to src/kem/kyber/kyber1024/clean/symmetric-shake.c diff --git a/crypto_kem/kyber/kyber1024/clean/symmetric.h b/src/kem/kyber/kyber1024/clean/symmetric.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/symmetric.h rename to src/kem/kyber/kyber1024/clean/symmetric.h diff --git a/crypto_kem/kyber/kyber1024/clean/verify.c b/src/kem/kyber/kyber1024/clean/verify.c similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/verify.c rename to src/kem/kyber/kyber1024/clean/verify.c diff --git a/crypto_kem/kyber/kyber1024/clean/verify.h b/src/kem/kyber/kyber1024/clean/verify.h similarity index 100% rename from crypto_kem/kyber/kyber1024/clean/verify.h rename to src/kem/kyber/kyber1024/clean/verify.h diff --git a/src/kem/kyber/kyber512/avx2/CMakeLists.txt b/src/kem/kyber/kyber512/avx2/CMakeLists.txt new file mode 100644 index 00000000..f41c6b77 --- /dev/null +++ b/src/kem/kyber/kyber512/avx2/CMakeLists.txt @@ -0,0 +1,21 @@ +set( + SRC_AVX2_KYBER512 + basemul.S + cbd.c + consts.c + fips202x4.c + fq.S + indcpa.c + invntt.S + kem.c + ntt.S + poly.c + polyvec.c + rejsample.c + shuffle.S + symmetric-shake.c + verify.c +) + +define_kem_alg(kyber512_avx2 + PQCLEAN_KYBER512_AVX2 "${SRC_AVX2_KYBER512}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/kyber/kyber512/avx2/align.h b/src/kem/kyber/kyber512/avx2/align.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/align.h rename to src/kem/kyber/kyber512/avx2/align.h diff --git a/crypto_kem/kyber/kyber512/avx2/api.h b/src/kem/kyber/kyber512/avx2/api.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/api.h rename to src/kem/kyber/kyber512/avx2/api.h diff --git a/crypto_kem/kyber/kyber512/avx2/basemul.S b/src/kem/kyber/kyber512/avx2/basemul.S similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/basemul.S rename to src/kem/kyber/kyber512/avx2/basemul.S diff --git a/crypto_kem/kyber/kyber512/avx2/cbd.c b/src/kem/kyber/kyber512/avx2/cbd.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/cbd.c rename to src/kem/kyber/kyber512/avx2/cbd.c diff --git a/crypto_kem/kyber/kyber512/avx2/cbd.h b/src/kem/kyber/kyber512/avx2/cbd.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/cbd.h rename to src/kem/kyber/kyber512/avx2/cbd.h diff --git a/crypto_kem/kyber/kyber512/avx2/cdecl.h b/src/kem/kyber/kyber512/avx2/cdecl.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/cdecl.h rename to src/kem/kyber/kyber512/avx2/cdecl.h diff --git a/crypto_kem/kyber/kyber512/avx2/consts.c b/src/kem/kyber/kyber512/avx2/consts.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/consts.c rename to src/kem/kyber/kyber512/avx2/consts.c diff --git a/crypto_kem/kyber/kyber512/avx2/consts.h b/src/kem/kyber/kyber512/avx2/consts.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/consts.h rename to src/kem/kyber/kyber512/avx2/consts.h diff --git a/crypto_kem/kyber/kyber512/avx2/fips202x4.c b/src/kem/kyber/kyber512/avx2/fips202x4.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/fips202x4.c rename to src/kem/kyber/kyber512/avx2/fips202x4.c diff --git a/crypto_kem/kyber/kyber512/avx2/fips202x4.h b/src/kem/kyber/kyber512/avx2/fips202x4.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/fips202x4.h rename to src/kem/kyber/kyber512/avx2/fips202x4.h diff --git a/crypto_kem/kyber/kyber512/avx2/fq.S b/src/kem/kyber/kyber512/avx2/fq.S similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/fq.S rename to src/kem/kyber/kyber512/avx2/fq.S diff --git a/crypto_kem/kyber/kyber512/avx2/fq.inc b/src/kem/kyber/kyber512/avx2/fq.inc similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/fq.inc rename to src/kem/kyber/kyber512/avx2/fq.inc diff --git a/crypto_kem/kyber/kyber512/avx2/indcpa.c b/src/kem/kyber/kyber512/avx2/indcpa.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/indcpa.c rename to src/kem/kyber/kyber512/avx2/indcpa.c diff --git a/crypto_kem/kyber/kyber512/avx2/indcpa.h b/src/kem/kyber/kyber512/avx2/indcpa.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/indcpa.h rename to src/kem/kyber/kyber512/avx2/indcpa.h diff --git a/crypto_kem/kyber/kyber512/avx2/invntt.S b/src/kem/kyber/kyber512/avx2/invntt.S similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/invntt.S rename to src/kem/kyber/kyber512/avx2/invntt.S diff --git a/crypto_kem/kyber/kyber512/avx2/kem.c b/src/kem/kyber/kyber512/avx2/kem.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/kem.c rename to src/kem/kyber/kyber512/avx2/kem.c diff --git a/crypto_kem/kyber/kyber512/avx2/kem.h b/src/kem/kyber/kyber512/avx2/kem.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/kem.h rename to src/kem/kyber/kyber512/avx2/kem.h diff --git a/crypto_kem/kyber/kyber512/avx2/ntt.S b/src/kem/kyber/kyber512/avx2/ntt.S similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/ntt.S rename to src/kem/kyber/kyber512/avx2/ntt.S diff --git a/crypto_kem/kyber/kyber512/avx2/ntt.h b/src/kem/kyber/kyber512/avx2/ntt.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/ntt.h rename to src/kem/kyber/kyber512/avx2/ntt.h diff --git a/crypto_kem/kyber/kyber512/avx2/params.h b/src/kem/kyber/kyber512/avx2/params.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/params.h rename to src/kem/kyber/kyber512/avx2/params.h diff --git a/crypto_kem/kyber/kyber512/avx2/poly.c b/src/kem/kyber/kyber512/avx2/poly.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/poly.c rename to src/kem/kyber/kyber512/avx2/poly.c diff --git a/crypto_kem/kyber/kyber512/avx2/poly.h b/src/kem/kyber/kyber512/avx2/poly.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/poly.h rename to src/kem/kyber/kyber512/avx2/poly.h diff --git a/crypto_kem/kyber/kyber512/avx2/polyvec.c b/src/kem/kyber/kyber512/avx2/polyvec.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/polyvec.c rename to src/kem/kyber/kyber512/avx2/polyvec.c diff --git a/crypto_kem/kyber/kyber512/avx2/polyvec.h b/src/kem/kyber/kyber512/avx2/polyvec.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/polyvec.h rename to src/kem/kyber/kyber512/avx2/polyvec.h diff --git a/crypto_kem/kyber/kyber512/avx2/reduce.h b/src/kem/kyber/kyber512/avx2/reduce.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/reduce.h rename to src/kem/kyber/kyber512/avx2/reduce.h diff --git a/crypto_kem/kyber/kyber512/avx2/rejsample.c b/src/kem/kyber/kyber512/avx2/rejsample.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/rejsample.c rename to src/kem/kyber/kyber512/avx2/rejsample.c diff --git a/crypto_kem/kyber/kyber512/avx2/rejsample.h b/src/kem/kyber/kyber512/avx2/rejsample.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/rejsample.h rename to src/kem/kyber/kyber512/avx2/rejsample.h diff --git a/crypto_kem/kyber/kyber512/avx2/shuffle.S b/src/kem/kyber/kyber512/avx2/shuffle.S similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/shuffle.S rename to src/kem/kyber/kyber512/avx2/shuffle.S diff --git a/crypto_kem/kyber/kyber512/avx2/shuffle.inc b/src/kem/kyber/kyber512/avx2/shuffle.inc similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/shuffle.inc rename to src/kem/kyber/kyber512/avx2/shuffle.inc diff --git a/crypto_kem/kyber/kyber512/avx2/symmetric-shake.c b/src/kem/kyber/kyber512/avx2/symmetric-shake.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/symmetric-shake.c rename to src/kem/kyber/kyber512/avx2/symmetric-shake.c diff --git a/crypto_kem/kyber/kyber512/avx2/symmetric.h b/src/kem/kyber/kyber512/avx2/symmetric.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/symmetric.h rename to src/kem/kyber/kyber512/avx2/symmetric.h diff --git a/crypto_kem/kyber/kyber512/avx2/verify.c b/src/kem/kyber/kyber512/avx2/verify.c similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/verify.c rename to src/kem/kyber/kyber512/avx2/verify.c diff --git a/crypto_kem/kyber/kyber512/avx2/verify.h b/src/kem/kyber/kyber512/avx2/verify.h similarity index 100% rename from crypto_kem/kyber/kyber512/avx2/verify.h rename to src/kem/kyber/kyber512/avx2/verify.h diff --git a/src/kem/kyber/kyber512/clean/CMakeLists.txt b/src/kem/kyber/kyber512/clean/CMakeLists.txt new file mode 100644 index 00000000..fa8f793e --- /dev/null +++ b/src/kem/kyber/kyber512/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_KYBER512 + cbd.c + indcpa.c + kem.c + ntt.c + poly.c + polyvec.c + reduce.c + symmetric-shake.c + verify.c +) + +define_kem_alg(kyber512_clean + PQCLEAN_KYBER512_CLEAN "${SRC_CLEAN_KYBER512}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/kyber/kyber512/clean/api.h b/src/kem/kyber/kyber512/clean/api.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/api.h rename to src/kem/kyber/kyber512/clean/api.h diff --git a/crypto_kem/kyber/kyber512/clean/cbd.c b/src/kem/kyber/kyber512/clean/cbd.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/cbd.c rename to src/kem/kyber/kyber512/clean/cbd.c diff --git a/crypto_kem/kyber/kyber512/clean/cbd.h b/src/kem/kyber/kyber512/clean/cbd.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/cbd.h rename to src/kem/kyber/kyber512/clean/cbd.h diff --git a/crypto_kem/kyber/kyber512/clean/indcpa.c b/src/kem/kyber/kyber512/clean/indcpa.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/indcpa.c rename to src/kem/kyber/kyber512/clean/indcpa.c diff --git a/crypto_kem/kyber/kyber512/clean/indcpa.h b/src/kem/kyber/kyber512/clean/indcpa.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/indcpa.h rename to src/kem/kyber/kyber512/clean/indcpa.h diff --git a/crypto_kem/kyber/kyber512/clean/kem.c b/src/kem/kyber/kyber512/clean/kem.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/kem.c rename to src/kem/kyber/kyber512/clean/kem.c diff --git a/crypto_kem/kyber/kyber512/clean/kem.h b/src/kem/kyber/kyber512/clean/kem.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/kem.h rename to src/kem/kyber/kyber512/clean/kem.h diff --git a/crypto_kem/kyber/kyber512/clean/ntt.c b/src/kem/kyber/kyber512/clean/ntt.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/ntt.c rename to src/kem/kyber/kyber512/clean/ntt.c diff --git a/crypto_kem/kyber/kyber512/clean/ntt.h b/src/kem/kyber/kyber512/clean/ntt.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/ntt.h rename to src/kem/kyber/kyber512/clean/ntt.h diff --git a/crypto_kem/kyber/kyber512/clean/params.h b/src/kem/kyber/kyber512/clean/params.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/params.h rename to src/kem/kyber/kyber512/clean/params.h diff --git a/crypto_kem/kyber/kyber512/clean/poly.c b/src/kem/kyber/kyber512/clean/poly.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/poly.c rename to src/kem/kyber/kyber512/clean/poly.c diff --git a/crypto_kem/kyber/kyber512/clean/poly.h b/src/kem/kyber/kyber512/clean/poly.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/poly.h rename to src/kem/kyber/kyber512/clean/poly.h diff --git a/crypto_kem/kyber/kyber512/clean/polyvec.c b/src/kem/kyber/kyber512/clean/polyvec.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/polyvec.c rename to src/kem/kyber/kyber512/clean/polyvec.c diff --git a/crypto_kem/kyber/kyber512/clean/polyvec.h b/src/kem/kyber/kyber512/clean/polyvec.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/polyvec.h rename to src/kem/kyber/kyber512/clean/polyvec.h diff --git a/crypto_kem/kyber/kyber512/clean/reduce.c b/src/kem/kyber/kyber512/clean/reduce.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/reduce.c rename to src/kem/kyber/kyber512/clean/reduce.c diff --git a/crypto_kem/kyber/kyber512/clean/reduce.h b/src/kem/kyber/kyber512/clean/reduce.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/reduce.h rename to src/kem/kyber/kyber512/clean/reduce.h diff --git a/crypto_kem/kyber/kyber512/clean/symmetric-shake.c b/src/kem/kyber/kyber512/clean/symmetric-shake.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/symmetric-shake.c rename to src/kem/kyber/kyber512/clean/symmetric-shake.c diff --git a/crypto_kem/kyber/kyber512/clean/symmetric.h b/src/kem/kyber/kyber512/clean/symmetric.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/symmetric.h rename to src/kem/kyber/kyber512/clean/symmetric.h diff --git a/crypto_kem/kyber/kyber512/clean/verify.c b/src/kem/kyber/kyber512/clean/verify.c similarity index 100% rename from crypto_kem/kyber/kyber512/clean/verify.c rename to src/kem/kyber/kyber512/clean/verify.c diff --git a/crypto_kem/kyber/kyber512/clean/verify.h b/src/kem/kyber/kyber512/clean/verify.h similarity index 100% rename from crypto_kem/kyber/kyber512/clean/verify.h rename to src/kem/kyber/kyber512/clean/verify.h diff --git a/src/kem/kyber/kyber768/avx2/CMakeLists.txt b/src/kem/kyber/kyber768/avx2/CMakeLists.txt new file mode 100644 index 00000000..1fd8d108 --- /dev/null +++ b/src/kem/kyber/kyber768/avx2/CMakeLists.txt @@ -0,0 +1,21 @@ +set( + SRC_AVX2_KYBER768 + basemul.S + cbd.c + consts.c + fips202x4.c + fq.S + indcpa.c + invntt.S + kem.c + ntt.S + poly.c + polyvec.c + rejsample.c + shuffle.S + symmetric-shake.c + verify.c +) + +define_kem_alg(kyber768_avx2 + PQCLEAN_KYBER768_AVX2 "${SRC_AVX2_KYBER768}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/kyber/kyber768/avx2/align.h b/src/kem/kyber/kyber768/avx2/align.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/align.h rename to src/kem/kyber/kyber768/avx2/align.h diff --git a/crypto_kem/kyber/kyber768/avx2/api.h b/src/kem/kyber/kyber768/avx2/api.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/api.h rename to src/kem/kyber/kyber768/avx2/api.h diff --git a/crypto_kem/kyber/kyber768/avx2/basemul.S b/src/kem/kyber/kyber768/avx2/basemul.S similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/basemul.S rename to src/kem/kyber/kyber768/avx2/basemul.S diff --git a/crypto_kem/kyber/kyber768/avx2/cbd.c b/src/kem/kyber/kyber768/avx2/cbd.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/cbd.c rename to src/kem/kyber/kyber768/avx2/cbd.c diff --git a/crypto_kem/kyber/kyber768/avx2/cbd.h b/src/kem/kyber/kyber768/avx2/cbd.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/cbd.h rename to src/kem/kyber/kyber768/avx2/cbd.h diff --git a/crypto_kem/kyber/kyber768/avx2/cdecl.h b/src/kem/kyber/kyber768/avx2/cdecl.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/cdecl.h rename to src/kem/kyber/kyber768/avx2/cdecl.h diff --git a/crypto_kem/kyber/kyber768/avx2/consts.c b/src/kem/kyber/kyber768/avx2/consts.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/consts.c rename to src/kem/kyber/kyber768/avx2/consts.c diff --git a/crypto_kem/kyber/kyber768/avx2/consts.h b/src/kem/kyber/kyber768/avx2/consts.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/consts.h rename to src/kem/kyber/kyber768/avx2/consts.h diff --git a/crypto_kem/kyber/kyber768/avx2/fips202x4.c b/src/kem/kyber/kyber768/avx2/fips202x4.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/fips202x4.c rename to src/kem/kyber/kyber768/avx2/fips202x4.c diff --git a/crypto_kem/kyber/kyber768/avx2/fips202x4.h b/src/kem/kyber/kyber768/avx2/fips202x4.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/fips202x4.h rename to src/kem/kyber/kyber768/avx2/fips202x4.h diff --git a/crypto_kem/kyber/kyber768/avx2/fq.S b/src/kem/kyber/kyber768/avx2/fq.S similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/fq.S rename to src/kem/kyber/kyber768/avx2/fq.S diff --git a/crypto_kem/kyber/kyber768/avx2/fq.inc b/src/kem/kyber/kyber768/avx2/fq.inc similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/fq.inc rename to src/kem/kyber/kyber768/avx2/fq.inc diff --git a/crypto_kem/kyber/kyber768/avx2/indcpa.c b/src/kem/kyber/kyber768/avx2/indcpa.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/indcpa.c rename to src/kem/kyber/kyber768/avx2/indcpa.c diff --git a/crypto_kem/kyber/kyber768/avx2/indcpa.h b/src/kem/kyber/kyber768/avx2/indcpa.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/indcpa.h rename to src/kem/kyber/kyber768/avx2/indcpa.h diff --git a/crypto_kem/kyber/kyber768/avx2/invntt.S b/src/kem/kyber/kyber768/avx2/invntt.S similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/invntt.S rename to src/kem/kyber/kyber768/avx2/invntt.S diff --git a/crypto_kem/kyber/kyber768/avx2/kem.c b/src/kem/kyber/kyber768/avx2/kem.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/kem.c rename to src/kem/kyber/kyber768/avx2/kem.c diff --git a/crypto_kem/kyber/kyber768/avx2/kem.h b/src/kem/kyber/kyber768/avx2/kem.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/kem.h rename to src/kem/kyber/kyber768/avx2/kem.h diff --git a/crypto_kem/kyber/kyber768/avx2/ntt.S b/src/kem/kyber/kyber768/avx2/ntt.S similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/ntt.S rename to src/kem/kyber/kyber768/avx2/ntt.S diff --git a/crypto_kem/kyber/kyber768/avx2/ntt.h b/src/kem/kyber/kyber768/avx2/ntt.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/ntt.h rename to src/kem/kyber/kyber768/avx2/ntt.h diff --git a/crypto_kem/kyber/kyber768/avx2/params.h b/src/kem/kyber/kyber768/avx2/params.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/params.h rename to src/kem/kyber/kyber768/avx2/params.h diff --git a/crypto_kem/kyber/kyber768/avx2/poly.c b/src/kem/kyber/kyber768/avx2/poly.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/poly.c rename to src/kem/kyber/kyber768/avx2/poly.c diff --git a/crypto_kem/kyber/kyber768/avx2/poly.h b/src/kem/kyber/kyber768/avx2/poly.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/poly.h rename to src/kem/kyber/kyber768/avx2/poly.h diff --git a/crypto_kem/kyber/kyber768/avx2/polyvec.c b/src/kem/kyber/kyber768/avx2/polyvec.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/polyvec.c rename to src/kem/kyber/kyber768/avx2/polyvec.c diff --git a/crypto_kem/kyber/kyber768/avx2/polyvec.h b/src/kem/kyber/kyber768/avx2/polyvec.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/polyvec.h rename to src/kem/kyber/kyber768/avx2/polyvec.h diff --git a/crypto_kem/kyber/kyber768/avx2/reduce.h b/src/kem/kyber/kyber768/avx2/reduce.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/reduce.h rename to src/kem/kyber/kyber768/avx2/reduce.h diff --git a/crypto_kem/kyber/kyber768/avx2/rejsample.c b/src/kem/kyber/kyber768/avx2/rejsample.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/rejsample.c rename to src/kem/kyber/kyber768/avx2/rejsample.c diff --git a/crypto_kem/kyber/kyber768/avx2/rejsample.h b/src/kem/kyber/kyber768/avx2/rejsample.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/rejsample.h rename to src/kem/kyber/kyber768/avx2/rejsample.h diff --git a/crypto_kem/kyber/kyber768/avx2/shuffle.S b/src/kem/kyber/kyber768/avx2/shuffle.S similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/shuffle.S rename to src/kem/kyber/kyber768/avx2/shuffle.S diff --git a/crypto_kem/kyber/kyber768/avx2/shuffle.inc b/src/kem/kyber/kyber768/avx2/shuffle.inc similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/shuffle.inc rename to src/kem/kyber/kyber768/avx2/shuffle.inc diff --git a/crypto_kem/kyber/kyber768/avx2/symmetric-shake.c b/src/kem/kyber/kyber768/avx2/symmetric-shake.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/symmetric-shake.c rename to src/kem/kyber/kyber768/avx2/symmetric-shake.c diff --git a/crypto_kem/kyber/kyber768/avx2/symmetric.h b/src/kem/kyber/kyber768/avx2/symmetric.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/symmetric.h rename to src/kem/kyber/kyber768/avx2/symmetric.h diff --git a/crypto_kem/kyber/kyber768/avx2/verify.c b/src/kem/kyber/kyber768/avx2/verify.c similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/verify.c rename to src/kem/kyber/kyber768/avx2/verify.c diff --git a/crypto_kem/kyber/kyber768/avx2/verify.h b/src/kem/kyber/kyber768/avx2/verify.h similarity index 100% rename from crypto_kem/kyber/kyber768/avx2/verify.h rename to src/kem/kyber/kyber768/avx2/verify.h diff --git a/src/kem/kyber/kyber768/clean/CMakeLists.txt b/src/kem/kyber/kyber768/clean/CMakeLists.txt new file mode 100644 index 00000000..cf027990 --- /dev/null +++ b/src/kem/kyber/kyber768/clean/CMakeLists.txt @@ -0,0 +1,18 @@ +set( + SRC_CLEAN_KYBER768 + cbd.c + indcpa.c + kem.c + ntt.c + poly.c + polyvec.c + reduce.c + symmetric-shake.c + verify.c +) +set( + INC_CLEAN_KYBER768 + ${CMAKE_CURRENT_SOURCE_DIR} +) +define_kem_alg(kyber768_clean + PQCLEAN_KYBER768_CLEAN "${SRC_CLEAN_KYBER768}" "${INC_CLEAN_KYBER768}") diff --git a/crypto_kem/kyber/kyber768/clean/api.h b/src/kem/kyber/kyber768/clean/api.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/api.h rename to src/kem/kyber/kyber768/clean/api.h diff --git a/crypto_kem/kyber/kyber768/clean/cbd.c b/src/kem/kyber/kyber768/clean/cbd.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/cbd.c rename to src/kem/kyber/kyber768/clean/cbd.c diff --git a/crypto_kem/kyber/kyber768/clean/cbd.h b/src/kem/kyber/kyber768/clean/cbd.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/cbd.h rename to src/kem/kyber/kyber768/clean/cbd.h diff --git a/crypto_kem/kyber/kyber768/clean/indcpa.c b/src/kem/kyber/kyber768/clean/indcpa.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/indcpa.c rename to src/kem/kyber/kyber768/clean/indcpa.c diff --git a/crypto_kem/kyber/kyber768/clean/indcpa.h b/src/kem/kyber/kyber768/clean/indcpa.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/indcpa.h rename to src/kem/kyber/kyber768/clean/indcpa.h diff --git a/crypto_kem/kyber/kyber768/clean/kem.c b/src/kem/kyber/kyber768/clean/kem.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/kem.c rename to src/kem/kyber/kyber768/clean/kem.c diff --git a/crypto_kem/kyber/kyber768/clean/kem.h b/src/kem/kyber/kyber768/clean/kem.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/kem.h rename to src/kem/kyber/kyber768/clean/kem.h diff --git a/crypto_kem/kyber/kyber768/clean/ntt.c b/src/kem/kyber/kyber768/clean/ntt.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/ntt.c rename to src/kem/kyber/kyber768/clean/ntt.c diff --git a/crypto_kem/kyber/kyber768/clean/ntt.h b/src/kem/kyber/kyber768/clean/ntt.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/ntt.h rename to src/kem/kyber/kyber768/clean/ntt.h diff --git a/crypto_kem/kyber/kyber768/clean/params.h b/src/kem/kyber/kyber768/clean/params.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/params.h rename to src/kem/kyber/kyber768/clean/params.h diff --git a/crypto_kem/kyber/kyber768/clean/poly.c b/src/kem/kyber/kyber768/clean/poly.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/poly.c rename to src/kem/kyber/kyber768/clean/poly.c diff --git a/crypto_kem/kyber/kyber768/clean/poly.h b/src/kem/kyber/kyber768/clean/poly.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/poly.h rename to src/kem/kyber/kyber768/clean/poly.h diff --git a/crypto_kem/kyber/kyber768/clean/polyvec.c b/src/kem/kyber/kyber768/clean/polyvec.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/polyvec.c rename to src/kem/kyber/kyber768/clean/polyvec.c diff --git a/crypto_kem/kyber/kyber768/clean/polyvec.h b/src/kem/kyber/kyber768/clean/polyvec.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/polyvec.h rename to src/kem/kyber/kyber768/clean/polyvec.h diff --git a/crypto_kem/kyber/kyber768/clean/reduce.c b/src/kem/kyber/kyber768/clean/reduce.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/reduce.c rename to src/kem/kyber/kyber768/clean/reduce.c diff --git a/crypto_kem/kyber/kyber768/clean/reduce.h b/src/kem/kyber/kyber768/clean/reduce.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/reduce.h rename to src/kem/kyber/kyber768/clean/reduce.h diff --git a/crypto_kem/kyber/kyber768/clean/symmetric-shake.c b/src/kem/kyber/kyber768/clean/symmetric-shake.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/symmetric-shake.c rename to src/kem/kyber/kyber768/clean/symmetric-shake.c diff --git a/crypto_kem/kyber/kyber768/clean/symmetric.h b/src/kem/kyber/kyber768/clean/symmetric.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/symmetric.h rename to src/kem/kyber/kyber768/clean/symmetric.h diff --git a/crypto_kem/kyber/kyber768/clean/verify.c b/src/kem/kyber/kyber768/clean/verify.c similarity index 100% rename from crypto_kem/kyber/kyber768/clean/verify.c rename to src/kem/kyber/kyber768/clean/verify.c diff --git a/crypto_kem/kyber/kyber768/clean/verify.h b/src/kem/kyber/kyber768/clean/verify.h similarity index 100% rename from crypto_kem/kyber/kyber768/clean/verify.h rename to src/kem/kyber/kyber768/clean/verify.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/aes256ctr.c b/src/kem/mceliece/mceliece348864/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/aes256ctr.c rename to src/kem/mceliece/mceliece348864/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/aes256ctr.h b/src/kem/mceliece/mceliece348864/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/aes256ctr.h rename to src/kem/mceliece/mceliece348864/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/api.h b/src/kem/mceliece/mceliece348864/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/api.h rename to src/kem/mceliece/mceliece348864/avx/api.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/benes.c b/src/kem/mceliece/mceliece348864/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/benes.c rename to src/kem/mceliece/mceliece348864/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/benes.h b/src/kem/mceliece/mceliece348864/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/benes.h rename to src/kem/mceliece/mceliece348864/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/bm.c b/src/kem/mceliece/mceliece348864/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/bm.c rename to src/kem/mceliece/mceliece348864/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/bm.h b/src/kem/mceliece/mceliece348864/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/bm.h rename to src/kem/mceliece/mceliece348864/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/consts.S b/src/kem/mceliece/mceliece348864/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/consts.S rename to src/kem/mceliece/mceliece348864/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/consts.inc b/src/kem/mceliece/mceliece348864/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/consts.inc rename to src/kem/mceliece/mceliece348864/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece348864/avx/controlbits.c b/src/kem/mceliece/mceliece348864/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/controlbits.c rename to src/kem/mceliece/mceliece348864/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/controlbits.h b/src/kem/mceliece/mceliece348864/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/controlbits.h rename to src/kem/mceliece/mceliece348864/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/crypto_hash.h b/src/kem/mceliece/mceliece348864/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/crypto_hash.h rename to src/kem/mceliece/mceliece348864/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/decrypt.c b/src/kem/mceliece/mceliece348864/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/decrypt.c rename to src/kem/mceliece/mceliece348864/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/decrypt.h b/src/kem/mceliece/mceliece348864/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/decrypt.h rename to src/kem/mceliece/mceliece348864/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/encrypt.c b/src/kem/mceliece/mceliece348864/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/encrypt.c rename to src/kem/mceliece/mceliece348864/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/encrypt.h b/src/kem/mceliece/mceliece348864/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/encrypt.h rename to src/kem/mceliece/mceliece348864/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/fft.c b/src/kem/mceliece/mceliece348864/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/fft.c rename to src/kem/mceliece/mceliece348864/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/fft.h b/src/kem/mceliece/mceliece348864/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/fft.h rename to src/kem/mceliece/mceliece348864/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/fft_tr.c b/src/kem/mceliece/mceliece348864/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/fft_tr.c rename to src/kem/mceliece/mceliece348864/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/fft_tr.h b/src/kem/mceliece/mceliece348864/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/fft_tr.h rename to src/kem/mceliece/mceliece348864/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/gf.c b/src/kem/mceliece/mceliece348864/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/gf.c rename to src/kem/mceliece/mceliece348864/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/gf.h b/src/kem/mceliece/mceliece348864/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/gf.h rename to src/kem/mceliece/mceliece348864/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/int32_sort.c b/src/kem/mceliece/mceliece348864/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/int32_sort.c rename to src/kem/mceliece/mceliece348864/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/int32_sort.h b/src/kem/mceliece/mceliece348864/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/int32_sort.h rename to src/kem/mceliece/mceliece348864/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/operations.c b/src/kem/mceliece/mceliece348864/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/operations.c rename to src/kem/mceliece/mceliece348864/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/params.h b/src/kem/mceliece/mceliece348864/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/params.h rename to src/kem/mceliece/mceliece348864/avx/params.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/pk_gen.c b/src/kem/mceliece/mceliece348864/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/pk_gen.c rename to src/kem/mceliece/mceliece348864/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/pk_gen.h b/src/kem/mceliece/mceliece348864/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/pk_gen.h rename to src/kem/mceliece/mceliece348864/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/powers.inc b/src/kem/mceliece/mceliece348864/avx/powers.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/powers.inc rename to src/kem/mceliece/mceliece348864/avx/powers.inc diff --git a/crypto_kem/mceliece/mceliece348864/avx/scalars.inc b/src/kem/mceliece/mceliece348864/avx/scalars.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/scalars.inc rename to src/kem/mceliece/mceliece348864/avx/scalars.inc diff --git a/crypto_kem/mceliece/mceliece348864/avx/scalars_2x.inc b/src/kem/mceliece/mceliece348864/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece348864/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece348864/avx/sk_gen.c b/src/kem/mceliece/mceliece348864/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/sk_gen.c rename to src/kem/mceliece/mceliece348864/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/sk_gen.h b/src/kem/mceliece/mceliece348864/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/sk_gen.h rename to src/kem/mceliece/mceliece348864/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/syndrome_asm.S b/src/kem/mceliece/mceliece348864/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece348864/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/transpose.c b/src/kem/mceliece/mceliece348864/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/transpose.c rename to src/kem/mceliece/mceliece348864/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/transpose.h b/src/kem/mceliece/mceliece348864/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/transpose.h rename to src/kem/mceliece/mceliece348864/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece348864/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece348864/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/transpose_64x64_asm.S b/src/kem/mceliece/mceliece348864/avx/transpose_64x64_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/transpose_64x64_asm.S rename to src/kem/mceliece/mceliece348864/avx/transpose_64x64_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/uint32_sort.c b/src/kem/mceliece/mceliece348864/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/uint32_sort.c rename to src/kem/mceliece/mceliece348864/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/uint32_sort.h b/src/kem/mceliece/mceliece348864/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/uint32_sort.h rename to src/kem/mceliece/mceliece348864/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/update_asm.S b/src/kem/mceliece/mceliece348864/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/update_asm.S rename to src/kem/mceliece/mceliece348864/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/util.c b/src/kem/mceliece/mceliece348864/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/util.c rename to src/kem/mceliece/mceliece348864/avx/util.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/util.h b/src/kem/mceliece/mceliece348864/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/util.h rename to src/kem/mceliece/mceliece348864/avx/util.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec.c b/src/kem/mceliece/mceliece348864/avx/vec.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec.c rename to src/kem/mceliece/mceliece348864/avx/vec.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec.h b/src/kem/mceliece/mceliece348864/avx/vec.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec.h rename to src/kem/mceliece/mceliece348864/avx/vec.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec128.c b/src/kem/mceliece/mceliece348864/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec128.c rename to src/kem/mceliece/mceliece348864/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec128.h b/src/kem/mceliece/mceliece348864/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec128.h rename to src/kem/mceliece/mceliece348864/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece348864/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece348864/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec256.c b/src/kem/mceliece/mceliece348864/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec256.c rename to src/kem/mceliece/mceliece348864/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec256.h b/src/kem/mceliece/mceliece348864/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec256.h rename to src/kem/mceliece/mceliece348864/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece348864/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece348864/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec_mul_asm.S b/src/kem/mceliece/mceliece348864/avx/vec_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec_mul_asm.S rename to src/kem/mceliece/mceliece348864/avx/vec_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec_mul_sp_asm.S b/src/kem/mceliece/mceliece348864/avx/vec_mul_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec_mul_sp_asm.S rename to src/kem/mceliece/mceliece348864/avx/vec_mul_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece348864/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece348864/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece348864/clean/aes256ctr.c b/src/kem/mceliece/mceliece348864/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/aes256ctr.c rename to src/kem/mceliece/mceliece348864/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/aes256ctr.h b/src/kem/mceliece/mceliece348864/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/aes256ctr.h rename to src/kem/mceliece/mceliece348864/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/api.h b/src/kem/mceliece/mceliece348864/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/api.h rename to src/kem/mceliece/mceliece348864/clean/api.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/benes.c b/src/kem/mceliece/mceliece348864/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/benes.c rename to src/kem/mceliece/mceliece348864/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/benes.h b/src/kem/mceliece/mceliece348864/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/benes.h rename to src/kem/mceliece/mceliece348864/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/bm.c b/src/kem/mceliece/mceliece348864/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/bm.c rename to src/kem/mceliece/mceliece348864/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/bm.h b/src/kem/mceliece/mceliece348864/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/bm.h rename to src/kem/mceliece/mceliece348864/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/controlbits.c b/src/kem/mceliece/mceliece348864/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/controlbits.c rename to src/kem/mceliece/mceliece348864/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/controlbits.h b/src/kem/mceliece/mceliece348864/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/controlbits.h rename to src/kem/mceliece/mceliece348864/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/crypto_hash.h b/src/kem/mceliece/mceliece348864/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/crypto_hash.h rename to src/kem/mceliece/mceliece348864/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/decrypt.c b/src/kem/mceliece/mceliece348864/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/decrypt.c rename to src/kem/mceliece/mceliece348864/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/decrypt.h b/src/kem/mceliece/mceliece348864/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/decrypt.h rename to src/kem/mceliece/mceliece348864/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/encrypt.c b/src/kem/mceliece/mceliece348864/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/encrypt.c rename to src/kem/mceliece/mceliece348864/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/encrypt.h b/src/kem/mceliece/mceliece348864/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/encrypt.h rename to src/kem/mceliece/mceliece348864/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/gf.c b/src/kem/mceliece/mceliece348864/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/gf.c rename to src/kem/mceliece/mceliece348864/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/gf.h b/src/kem/mceliece/mceliece348864/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/gf.h rename to src/kem/mceliece/mceliece348864/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/operations.c b/src/kem/mceliece/mceliece348864/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/operations.c rename to src/kem/mceliece/mceliece348864/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/params.h b/src/kem/mceliece/mceliece348864/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/params.h rename to src/kem/mceliece/mceliece348864/clean/params.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/pk_gen.c b/src/kem/mceliece/mceliece348864/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/pk_gen.c rename to src/kem/mceliece/mceliece348864/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/pk_gen.h b/src/kem/mceliece/mceliece348864/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/pk_gen.h rename to src/kem/mceliece/mceliece348864/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/root.c b/src/kem/mceliece/mceliece348864/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/root.c rename to src/kem/mceliece/mceliece348864/clean/root.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/root.h b/src/kem/mceliece/mceliece348864/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/root.h rename to src/kem/mceliece/mceliece348864/clean/root.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/sk_gen.c b/src/kem/mceliece/mceliece348864/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/sk_gen.c rename to src/kem/mceliece/mceliece348864/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/sk_gen.h b/src/kem/mceliece/mceliece348864/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/sk_gen.h rename to src/kem/mceliece/mceliece348864/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/synd.c b/src/kem/mceliece/mceliece348864/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/synd.c rename to src/kem/mceliece/mceliece348864/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/synd.h b/src/kem/mceliece/mceliece348864/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/synd.h rename to src/kem/mceliece/mceliece348864/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/transpose.c b/src/kem/mceliece/mceliece348864/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/transpose.c rename to src/kem/mceliece/mceliece348864/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/transpose.h b/src/kem/mceliece/mceliece348864/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/transpose.h rename to src/kem/mceliece/mceliece348864/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece348864/clean/util.c b/src/kem/mceliece/mceliece348864/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/util.c rename to src/kem/mceliece/mceliece348864/clean/util.c diff --git a/crypto_kem/mceliece/mceliece348864/clean/util.h b/src/kem/mceliece/mceliece348864/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864/clean/util.h rename to src/kem/mceliece/mceliece348864/clean/util.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/aes256ctr.c b/src/kem/mceliece/mceliece348864f/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/aes256ctr.c rename to src/kem/mceliece/mceliece348864f/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/aes256ctr.h b/src/kem/mceliece/mceliece348864f/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/aes256ctr.h rename to src/kem/mceliece/mceliece348864f/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/api.h b/src/kem/mceliece/mceliece348864f/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/api.h rename to src/kem/mceliece/mceliece348864f/avx/api.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/benes.c b/src/kem/mceliece/mceliece348864f/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/benes.c rename to src/kem/mceliece/mceliece348864f/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/benes.h b/src/kem/mceliece/mceliece348864f/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/benes.h rename to src/kem/mceliece/mceliece348864f/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/bm.c b/src/kem/mceliece/mceliece348864f/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/bm.c rename to src/kem/mceliece/mceliece348864f/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/bm.h b/src/kem/mceliece/mceliece348864f/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/bm.h rename to src/kem/mceliece/mceliece348864f/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/consts.S b/src/kem/mceliece/mceliece348864f/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/consts.S rename to src/kem/mceliece/mceliece348864f/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/consts.inc b/src/kem/mceliece/mceliece348864f/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/consts.inc rename to src/kem/mceliece/mceliece348864f/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece348864f/avx/controlbits.c b/src/kem/mceliece/mceliece348864f/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/controlbits.c rename to src/kem/mceliece/mceliece348864f/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/controlbits.h b/src/kem/mceliece/mceliece348864f/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/controlbits.h rename to src/kem/mceliece/mceliece348864f/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/crypto_hash.h b/src/kem/mceliece/mceliece348864f/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/crypto_hash.h rename to src/kem/mceliece/mceliece348864f/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/decrypt.c b/src/kem/mceliece/mceliece348864f/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/decrypt.c rename to src/kem/mceliece/mceliece348864f/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/decrypt.h b/src/kem/mceliece/mceliece348864f/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/decrypt.h rename to src/kem/mceliece/mceliece348864f/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/encrypt.c b/src/kem/mceliece/mceliece348864f/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/encrypt.c rename to src/kem/mceliece/mceliece348864f/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/encrypt.h b/src/kem/mceliece/mceliece348864f/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/encrypt.h rename to src/kem/mceliece/mceliece348864f/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/fft.c b/src/kem/mceliece/mceliece348864f/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/fft.c rename to src/kem/mceliece/mceliece348864f/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/fft.h b/src/kem/mceliece/mceliece348864f/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/fft.h rename to src/kem/mceliece/mceliece348864f/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/fft_tr.c b/src/kem/mceliece/mceliece348864f/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/fft_tr.c rename to src/kem/mceliece/mceliece348864f/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/fft_tr.h b/src/kem/mceliece/mceliece348864f/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/fft_tr.h rename to src/kem/mceliece/mceliece348864f/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/gf.c b/src/kem/mceliece/mceliece348864f/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/gf.c rename to src/kem/mceliece/mceliece348864f/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/gf.h b/src/kem/mceliece/mceliece348864f/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/gf.h rename to src/kem/mceliece/mceliece348864f/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/int32_sort.c b/src/kem/mceliece/mceliece348864f/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/int32_sort.c rename to src/kem/mceliece/mceliece348864f/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/int32_sort.h b/src/kem/mceliece/mceliece348864f/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/int32_sort.h rename to src/kem/mceliece/mceliece348864f/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/operations.c b/src/kem/mceliece/mceliece348864f/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/operations.c rename to src/kem/mceliece/mceliece348864f/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/params.h b/src/kem/mceliece/mceliece348864f/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/params.h rename to src/kem/mceliece/mceliece348864f/avx/params.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/pk_gen.c b/src/kem/mceliece/mceliece348864f/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/pk_gen.c rename to src/kem/mceliece/mceliece348864f/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/pk_gen.h b/src/kem/mceliece/mceliece348864f/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/pk_gen.h rename to src/kem/mceliece/mceliece348864f/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/powers.inc b/src/kem/mceliece/mceliece348864f/avx/powers.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/powers.inc rename to src/kem/mceliece/mceliece348864f/avx/powers.inc diff --git a/crypto_kem/mceliece/mceliece348864/sse/scalars.inc b/src/kem/mceliece/mceliece348864f/avx/scalars.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864/sse/scalars.inc rename to src/kem/mceliece/mceliece348864f/avx/scalars.inc diff --git a/crypto_kem/mceliece/mceliece348864f/avx/scalars_2x.inc b/src/kem/mceliece/mceliece348864f/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece348864f/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece348864f/avx/sk_gen.c b/src/kem/mceliece/mceliece348864f/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/sk_gen.c rename to src/kem/mceliece/mceliece348864f/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/sk_gen.h b/src/kem/mceliece/mceliece348864f/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/sk_gen.h rename to src/kem/mceliece/mceliece348864f/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/syndrome_asm.S b/src/kem/mceliece/mceliece348864f/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece348864f/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/transpose.c b/src/kem/mceliece/mceliece348864f/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/transpose.c rename to src/kem/mceliece/mceliece348864f/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/transpose.h b/src/kem/mceliece/mceliece348864f/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/transpose.h rename to src/kem/mceliece/mceliece348864f/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece348864f/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece348864f/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/transpose_64x64_asm.S b/src/kem/mceliece/mceliece348864f/avx/transpose_64x64_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/transpose_64x64_asm.S rename to src/kem/mceliece/mceliece348864f/avx/transpose_64x64_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/uint32_sort.c b/src/kem/mceliece/mceliece348864f/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/uint32_sort.c rename to src/kem/mceliece/mceliece348864f/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/uint32_sort.h b/src/kem/mceliece/mceliece348864f/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/uint32_sort.h rename to src/kem/mceliece/mceliece348864f/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/update_asm.S b/src/kem/mceliece/mceliece348864f/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/update_asm.S rename to src/kem/mceliece/mceliece348864f/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/util.c b/src/kem/mceliece/mceliece348864f/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/util.c rename to src/kem/mceliece/mceliece348864f/avx/util.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/util.h b/src/kem/mceliece/mceliece348864f/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/util.h rename to src/kem/mceliece/mceliece348864f/avx/util.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec.c b/src/kem/mceliece/mceliece348864f/avx/vec.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec.c rename to src/kem/mceliece/mceliece348864f/avx/vec.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec.h b/src/kem/mceliece/mceliece348864f/avx/vec.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec.h rename to src/kem/mceliece/mceliece348864f/avx/vec.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec128.c b/src/kem/mceliece/mceliece348864f/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec128.c rename to src/kem/mceliece/mceliece348864f/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec128.h b/src/kem/mceliece/mceliece348864f/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec128.h rename to src/kem/mceliece/mceliece348864f/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece348864f/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece348864f/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec256.c b/src/kem/mceliece/mceliece348864f/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec256.c rename to src/kem/mceliece/mceliece348864f/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec256.h b/src/kem/mceliece/mceliece348864f/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec256.h rename to src/kem/mceliece/mceliece348864f/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece348864f/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece348864f/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec_mul_asm.S b/src/kem/mceliece/mceliece348864f/avx/vec_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec_mul_asm.S rename to src/kem/mceliece/mceliece348864f/avx/vec_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec_mul_sp_asm.S b/src/kem/mceliece/mceliece348864f/avx/vec_mul_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec_mul_sp_asm.S rename to src/kem/mceliece/mceliece348864f/avx/vec_mul_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece348864f/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece348864f/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece348864f/clean/aes256ctr.c b/src/kem/mceliece/mceliece348864f/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/aes256ctr.c rename to src/kem/mceliece/mceliece348864f/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/aes256ctr.h b/src/kem/mceliece/mceliece348864f/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/aes256ctr.h rename to src/kem/mceliece/mceliece348864f/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/api.h b/src/kem/mceliece/mceliece348864f/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/api.h rename to src/kem/mceliece/mceliece348864f/clean/api.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/benes.c b/src/kem/mceliece/mceliece348864f/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/benes.c rename to src/kem/mceliece/mceliece348864f/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/benes.h b/src/kem/mceliece/mceliece348864f/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/benes.h rename to src/kem/mceliece/mceliece348864f/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/bm.c b/src/kem/mceliece/mceliece348864f/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/bm.c rename to src/kem/mceliece/mceliece348864f/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/bm.h b/src/kem/mceliece/mceliece348864f/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/bm.h rename to src/kem/mceliece/mceliece348864f/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/controlbits.c b/src/kem/mceliece/mceliece348864f/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/controlbits.c rename to src/kem/mceliece/mceliece348864f/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/controlbits.h b/src/kem/mceliece/mceliece348864f/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/controlbits.h rename to src/kem/mceliece/mceliece348864f/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/crypto_hash.h b/src/kem/mceliece/mceliece348864f/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/crypto_hash.h rename to src/kem/mceliece/mceliece348864f/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/decrypt.c b/src/kem/mceliece/mceliece348864f/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/decrypt.c rename to src/kem/mceliece/mceliece348864f/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/decrypt.h b/src/kem/mceliece/mceliece348864f/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/decrypt.h rename to src/kem/mceliece/mceliece348864f/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/encrypt.c b/src/kem/mceliece/mceliece348864f/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/encrypt.c rename to src/kem/mceliece/mceliece348864f/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/encrypt.h b/src/kem/mceliece/mceliece348864f/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/encrypt.h rename to src/kem/mceliece/mceliece348864f/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/gf.c b/src/kem/mceliece/mceliece348864f/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/gf.c rename to src/kem/mceliece/mceliece348864f/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/gf.h b/src/kem/mceliece/mceliece348864f/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/gf.h rename to src/kem/mceliece/mceliece348864f/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/operations.c b/src/kem/mceliece/mceliece348864f/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/operations.c rename to src/kem/mceliece/mceliece348864f/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/params.h b/src/kem/mceliece/mceliece348864f/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/params.h rename to src/kem/mceliece/mceliece348864f/clean/params.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/pk_gen.c b/src/kem/mceliece/mceliece348864f/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/pk_gen.c rename to src/kem/mceliece/mceliece348864f/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/pk_gen.h b/src/kem/mceliece/mceliece348864f/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/pk_gen.h rename to src/kem/mceliece/mceliece348864f/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/root.c b/src/kem/mceliece/mceliece348864f/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/root.c rename to src/kem/mceliece/mceliece348864f/clean/root.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/root.h b/src/kem/mceliece/mceliece348864f/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/root.h rename to src/kem/mceliece/mceliece348864f/clean/root.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/sk_gen.c b/src/kem/mceliece/mceliece348864f/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/sk_gen.c rename to src/kem/mceliece/mceliece348864f/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/sk_gen.h b/src/kem/mceliece/mceliece348864f/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/sk_gen.h rename to src/kem/mceliece/mceliece348864f/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/synd.c b/src/kem/mceliece/mceliece348864f/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/synd.c rename to src/kem/mceliece/mceliece348864f/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/synd.h b/src/kem/mceliece/mceliece348864f/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/synd.h rename to src/kem/mceliece/mceliece348864f/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/transpose.c b/src/kem/mceliece/mceliece348864f/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/transpose.c rename to src/kem/mceliece/mceliece348864f/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/transpose.h b/src/kem/mceliece/mceliece348864f/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/transpose.h rename to src/kem/mceliece/mceliece348864f/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece348864f/clean/util.c b/src/kem/mceliece/mceliece348864f/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/util.c rename to src/kem/mceliece/mceliece348864f/clean/util.c diff --git a/crypto_kem/mceliece/mceliece348864f/clean/util.h b/src/kem/mceliece/mceliece348864f/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece348864f/clean/util.h rename to src/kem/mceliece/mceliece348864f/clean/util.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/aes256ctr.c b/src/kem/mceliece/mceliece460896/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/aes256ctr.c rename to src/kem/mceliece/mceliece460896/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/aes256ctr.h b/src/kem/mceliece/mceliece460896/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/aes256ctr.h rename to src/kem/mceliece/mceliece460896/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/api.h b/src/kem/mceliece/mceliece460896/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/api.h rename to src/kem/mceliece/mceliece460896/avx/api.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/benes.c b/src/kem/mceliece/mceliece460896/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/benes.c rename to src/kem/mceliece/mceliece460896/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/benes.h b/src/kem/mceliece/mceliece460896/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/benes.h rename to src/kem/mceliece/mceliece460896/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/bm.c b/src/kem/mceliece/mceliece460896/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/bm.c rename to src/kem/mceliece/mceliece460896/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/bm.h b/src/kem/mceliece/mceliece460896/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/bm.h rename to src/kem/mceliece/mceliece460896/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/consts.S b/src/kem/mceliece/mceliece460896/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/consts.S rename to src/kem/mceliece/mceliece460896/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/consts.inc b/src/kem/mceliece/mceliece460896/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/consts.inc rename to src/kem/mceliece/mceliece460896/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece460896/avx/controlbits.c b/src/kem/mceliece/mceliece460896/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/controlbits.c rename to src/kem/mceliece/mceliece460896/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/controlbits.h b/src/kem/mceliece/mceliece460896/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/controlbits.h rename to src/kem/mceliece/mceliece460896/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/crypto_hash.h b/src/kem/mceliece/mceliece460896/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/crypto_hash.h rename to src/kem/mceliece/mceliece460896/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/decrypt.c b/src/kem/mceliece/mceliece460896/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/decrypt.c rename to src/kem/mceliece/mceliece460896/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/decrypt.h b/src/kem/mceliece/mceliece460896/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/decrypt.h rename to src/kem/mceliece/mceliece460896/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/encrypt.c b/src/kem/mceliece/mceliece460896/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/encrypt.c rename to src/kem/mceliece/mceliece460896/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/encrypt.h b/src/kem/mceliece/mceliece460896/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/encrypt.h rename to src/kem/mceliece/mceliece460896/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/fft.c b/src/kem/mceliece/mceliece460896/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/fft.c rename to src/kem/mceliece/mceliece460896/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/fft.h b/src/kem/mceliece/mceliece460896/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/fft.h rename to src/kem/mceliece/mceliece460896/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/fft_tr.c b/src/kem/mceliece/mceliece460896/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/fft_tr.c rename to src/kem/mceliece/mceliece460896/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/fft_tr.h b/src/kem/mceliece/mceliece460896/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/fft_tr.h rename to src/kem/mceliece/mceliece460896/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/gf.c b/src/kem/mceliece/mceliece460896/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/gf.c rename to src/kem/mceliece/mceliece460896/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/gf.h b/src/kem/mceliece/mceliece460896/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/gf.h rename to src/kem/mceliece/mceliece460896/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/int32_sort.c b/src/kem/mceliece/mceliece460896/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/int32_sort.c rename to src/kem/mceliece/mceliece460896/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/int32_sort.h b/src/kem/mceliece/mceliece460896/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/int32_sort.h rename to src/kem/mceliece/mceliece460896/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/operations.c b/src/kem/mceliece/mceliece460896/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/operations.c rename to src/kem/mceliece/mceliece460896/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/params.h b/src/kem/mceliece/mceliece460896/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/params.h rename to src/kem/mceliece/mceliece460896/avx/params.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/pk_gen.c b/src/kem/mceliece/mceliece460896/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/pk_gen.c rename to src/kem/mceliece/mceliece460896/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/pk_gen.h b/src/kem/mceliece/mceliece460896/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/pk_gen.h rename to src/kem/mceliece/mceliece460896/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/scalars_2x.inc b/src/kem/mceliece/mceliece460896/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece460896/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece460896/avx/scalars_4x.inc b/src/kem/mceliece/mceliece460896/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece460896/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece460896/avx/sk_gen.c b/src/kem/mceliece/mceliece460896/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/sk_gen.c rename to src/kem/mceliece/mceliece460896/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/sk_gen.h b/src/kem/mceliece/mceliece460896/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/sk_gen.h rename to src/kem/mceliece/mceliece460896/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/syndrome_asm.S b/src/kem/mceliece/mceliece460896/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece460896/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/transpose.c b/src/kem/mceliece/mceliece460896/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/transpose.c rename to src/kem/mceliece/mceliece460896/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/transpose.h b/src/kem/mceliece/mceliece460896/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/transpose.h rename to src/kem/mceliece/mceliece460896/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece460896/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece460896/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece460896/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece460896/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/uint32_sort.c b/src/kem/mceliece/mceliece460896/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/uint32_sort.c rename to src/kem/mceliece/mceliece460896/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/uint32_sort.h b/src/kem/mceliece/mceliece460896/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/uint32_sort.h rename to src/kem/mceliece/mceliece460896/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/update_asm.S b/src/kem/mceliece/mceliece460896/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/update_asm.S rename to src/kem/mceliece/mceliece460896/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/util.c b/src/kem/mceliece/mceliece460896/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/util.c rename to src/kem/mceliece/mceliece460896/avx/util.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/util.h b/src/kem/mceliece/mceliece460896/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/util.h rename to src/kem/mceliece/mceliece460896/avx/util.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec128.c b/src/kem/mceliece/mceliece460896/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec128.c rename to src/kem/mceliece/mceliece460896/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec128.h b/src/kem/mceliece/mceliece460896/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec128.h rename to src/kem/mceliece/mceliece460896/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece460896/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece460896/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec256.c b/src/kem/mceliece/mceliece460896/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec256.c rename to src/kem/mceliece/mceliece460896/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec256.h b/src/kem/mceliece/mceliece460896/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec256.h rename to src/kem/mceliece/mceliece460896/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece460896/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece460896/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece460896/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece460896/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece460896/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece460896/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece460896/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece460896/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece460896/clean/aes256ctr.c b/src/kem/mceliece/mceliece460896/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/aes256ctr.c rename to src/kem/mceliece/mceliece460896/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/aes256ctr.h b/src/kem/mceliece/mceliece460896/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/aes256ctr.h rename to src/kem/mceliece/mceliece460896/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/api.h b/src/kem/mceliece/mceliece460896/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/api.h rename to src/kem/mceliece/mceliece460896/clean/api.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/benes.c b/src/kem/mceliece/mceliece460896/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/benes.c rename to src/kem/mceliece/mceliece460896/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/benes.h b/src/kem/mceliece/mceliece460896/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/benes.h rename to src/kem/mceliece/mceliece460896/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/bm.c b/src/kem/mceliece/mceliece460896/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/bm.c rename to src/kem/mceliece/mceliece460896/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/bm.h b/src/kem/mceliece/mceliece460896/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/bm.h rename to src/kem/mceliece/mceliece460896/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/controlbits.c b/src/kem/mceliece/mceliece460896/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/controlbits.c rename to src/kem/mceliece/mceliece460896/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/controlbits.h b/src/kem/mceliece/mceliece460896/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/controlbits.h rename to src/kem/mceliece/mceliece460896/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/crypto_hash.h b/src/kem/mceliece/mceliece460896/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/crypto_hash.h rename to src/kem/mceliece/mceliece460896/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/decrypt.c b/src/kem/mceliece/mceliece460896/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/decrypt.c rename to src/kem/mceliece/mceliece460896/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/decrypt.h b/src/kem/mceliece/mceliece460896/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/decrypt.h rename to src/kem/mceliece/mceliece460896/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/encrypt.c b/src/kem/mceliece/mceliece460896/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/encrypt.c rename to src/kem/mceliece/mceliece460896/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/encrypt.h b/src/kem/mceliece/mceliece460896/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/encrypt.h rename to src/kem/mceliece/mceliece460896/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/gf.c b/src/kem/mceliece/mceliece460896/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/gf.c rename to src/kem/mceliece/mceliece460896/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/gf.h b/src/kem/mceliece/mceliece460896/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/gf.h rename to src/kem/mceliece/mceliece460896/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/operations.c b/src/kem/mceliece/mceliece460896/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/operations.c rename to src/kem/mceliece/mceliece460896/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/params.h b/src/kem/mceliece/mceliece460896/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/params.h rename to src/kem/mceliece/mceliece460896/clean/params.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/pk_gen.c b/src/kem/mceliece/mceliece460896/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/pk_gen.c rename to src/kem/mceliece/mceliece460896/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/pk_gen.h b/src/kem/mceliece/mceliece460896/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/pk_gen.h rename to src/kem/mceliece/mceliece460896/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/root.c b/src/kem/mceliece/mceliece460896/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/root.c rename to src/kem/mceliece/mceliece460896/clean/root.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/root.h b/src/kem/mceliece/mceliece460896/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/root.h rename to src/kem/mceliece/mceliece460896/clean/root.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/sk_gen.c b/src/kem/mceliece/mceliece460896/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/sk_gen.c rename to src/kem/mceliece/mceliece460896/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/sk_gen.h b/src/kem/mceliece/mceliece460896/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/sk_gen.h rename to src/kem/mceliece/mceliece460896/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/synd.c b/src/kem/mceliece/mceliece460896/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/synd.c rename to src/kem/mceliece/mceliece460896/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/synd.h b/src/kem/mceliece/mceliece460896/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/synd.h rename to src/kem/mceliece/mceliece460896/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/transpose.c b/src/kem/mceliece/mceliece460896/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/transpose.c rename to src/kem/mceliece/mceliece460896/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/transpose.h b/src/kem/mceliece/mceliece460896/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/transpose.h rename to src/kem/mceliece/mceliece460896/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece460896/clean/util.c b/src/kem/mceliece/mceliece460896/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/util.c rename to src/kem/mceliece/mceliece460896/clean/util.c diff --git a/crypto_kem/mceliece/mceliece460896/clean/util.h b/src/kem/mceliece/mceliece460896/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896/clean/util.h rename to src/kem/mceliece/mceliece460896/clean/util.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/aes256ctr.c b/src/kem/mceliece/mceliece460896f/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/aes256ctr.c rename to src/kem/mceliece/mceliece460896f/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/aes256ctr.h b/src/kem/mceliece/mceliece460896f/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/aes256ctr.h rename to src/kem/mceliece/mceliece460896f/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/api.h b/src/kem/mceliece/mceliece460896f/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/api.h rename to src/kem/mceliece/mceliece460896f/avx/api.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/benes.c b/src/kem/mceliece/mceliece460896f/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/benes.c rename to src/kem/mceliece/mceliece460896f/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/benes.h b/src/kem/mceliece/mceliece460896f/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/benes.h rename to src/kem/mceliece/mceliece460896f/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/bm.c b/src/kem/mceliece/mceliece460896f/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/bm.c rename to src/kem/mceliece/mceliece460896f/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/bm.h b/src/kem/mceliece/mceliece460896f/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/bm.h rename to src/kem/mceliece/mceliece460896f/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/consts.S b/src/kem/mceliece/mceliece460896f/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/consts.S rename to src/kem/mceliece/mceliece460896f/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/consts.inc b/src/kem/mceliece/mceliece460896f/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/consts.inc rename to src/kem/mceliece/mceliece460896f/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece460896f/avx/controlbits.c b/src/kem/mceliece/mceliece460896f/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/controlbits.c rename to src/kem/mceliece/mceliece460896f/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/controlbits.h b/src/kem/mceliece/mceliece460896f/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/controlbits.h rename to src/kem/mceliece/mceliece460896f/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/crypto_hash.h b/src/kem/mceliece/mceliece460896f/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/crypto_hash.h rename to src/kem/mceliece/mceliece460896f/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/decrypt.c b/src/kem/mceliece/mceliece460896f/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/decrypt.c rename to src/kem/mceliece/mceliece460896f/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/decrypt.h b/src/kem/mceliece/mceliece460896f/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/decrypt.h rename to src/kem/mceliece/mceliece460896f/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/encrypt.c b/src/kem/mceliece/mceliece460896f/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/encrypt.c rename to src/kem/mceliece/mceliece460896f/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/encrypt.h b/src/kem/mceliece/mceliece460896f/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/encrypt.h rename to src/kem/mceliece/mceliece460896f/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/fft.c b/src/kem/mceliece/mceliece460896f/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/fft.c rename to src/kem/mceliece/mceliece460896f/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/fft.h b/src/kem/mceliece/mceliece460896f/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/fft.h rename to src/kem/mceliece/mceliece460896f/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/fft_tr.c b/src/kem/mceliece/mceliece460896f/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/fft_tr.c rename to src/kem/mceliece/mceliece460896f/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/fft_tr.h b/src/kem/mceliece/mceliece460896f/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/fft_tr.h rename to src/kem/mceliece/mceliece460896f/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/gf.c b/src/kem/mceliece/mceliece460896f/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/gf.c rename to src/kem/mceliece/mceliece460896f/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/gf.h b/src/kem/mceliece/mceliece460896f/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/gf.h rename to src/kem/mceliece/mceliece460896f/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/int32_sort.c b/src/kem/mceliece/mceliece460896f/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/int32_sort.c rename to src/kem/mceliece/mceliece460896f/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/int32_sort.h b/src/kem/mceliece/mceliece460896f/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/int32_sort.h rename to src/kem/mceliece/mceliece460896f/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/operations.c b/src/kem/mceliece/mceliece460896f/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/operations.c rename to src/kem/mceliece/mceliece460896f/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/params.h b/src/kem/mceliece/mceliece460896f/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/params.h rename to src/kem/mceliece/mceliece460896f/avx/params.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/pk_gen.c b/src/kem/mceliece/mceliece460896f/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/pk_gen.c rename to src/kem/mceliece/mceliece460896f/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/pk_gen.h b/src/kem/mceliece/mceliece460896f/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/pk_gen.h rename to src/kem/mceliece/mceliece460896f/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/scalars_2x.inc b/src/kem/mceliece/mceliece460896f/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece460896f/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece460896f/avx/scalars_4x.inc b/src/kem/mceliece/mceliece460896f/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece460896f/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece460896f/avx/sk_gen.c b/src/kem/mceliece/mceliece460896f/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/sk_gen.c rename to src/kem/mceliece/mceliece460896f/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/sk_gen.h b/src/kem/mceliece/mceliece460896f/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/sk_gen.h rename to src/kem/mceliece/mceliece460896f/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/syndrome_asm.S b/src/kem/mceliece/mceliece460896f/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece460896f/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/transpose.c b/src/kem/mceliece/mceliece460896f/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/transpose.c rename to src/kem/mceliece/mceliece460896f/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/transpose.h b/src/kem/mceliece/mceliece460896f/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/transpose.h rename to src/kem/mceliece/mceliece460896f/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece460896f/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece460896f/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece460896f/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece460896f/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/uint32_sort.c b/src/kem/mceliece/mceliece460896f/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/uint32_sort.c rename to src/kem/mceliece/mceliece460896f/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/uint32_sort.h b/src/kem/mceliece/mceliece460896f/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/uint32_sort.h rename to src/kem/mceliece/mceliece460896f/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/update_asm.S b/src/kem/mceliece/mceliece460896f/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/update_asm.S rename to src/kem/mceliece/mceliece460896f/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/util.c b/src/kem/mceliece/mceliece460896f/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/util.c rename to src/kem/mceliece/mceliece460896f/avx/util.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/util.h b/src/kem/mceliece/mceliece460896f/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/util.h rename to src/kem/mceliece/mceliece460896f/avx/util.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec128.c b/src/kem/mceliece/mceliece460896f/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec128.c rename to src/kem/mceliece/mceliece460896f/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec128.h b/src/kem/mceliece/mceliece460896f/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec128.h rename to src/kem/mceliece/mceliece460896f/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece460896f/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece460896f/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec256.c b/src/kem/mceliece/mceliece460896f/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec256.c rename to src/kem/mceliece/mceliece460896f/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec256.h b/src/kem/mceliece/mceliece460896f/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec256.h rename to src/kem/mceliece/mceliece460896f/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece460896f/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece460896f/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece460896f/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece460896f/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece460896f/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece460896f/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece460896f/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece460896f/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece460896f/clean/aes256ctr.c b/src/kem/mceliece/mceliece460896f/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/aes256ctr.c rename to src/kem/mceliece/mceliece460896f/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/aes256ctr.h b/src/kem/mceliece/mceliece460896f/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/aes256ctr.h rename to src/kem/mceliece/mceliece460896f/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/api.h b/src/kem/mceliece/mceliece460896f/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/api.h rename to src/kem/mceliece/mceliece460896f/clean/api.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/benes.c b/src/kem/mceliece/mceliece460896f/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/benes.c rename to src/kem/mceliece/mceliece460896f/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/benes.h b/src/kem/mceliece/mceliece460896f/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/benes.h rename to src/kem/mceliece/mceliece460896f/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/bm.c b/src/kem/mceliece/mceliece460896f/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/bm.c rename to src/kem/mceliece/mceliece460896f/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/bm.h b/src/kem/mceliece/mceliece460896f/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/bm.h rename to src/kem/mceliece/mceliece460896f/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/controlbits.c b/src/kem/mceliece/mceliece460896f/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/controlbits.c rename to src/kem/mceliece/mceliece460896f/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/controlbits.h b/src/kem/mceliece/mceliece460896f/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/controlbits.h rename to src/kem/mceliece/mceliece460896f/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/crypto_hash.h b/src/kem/mceliece/mceliece460896f/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/crypto_hash.h rename to src/kem/mceliece/mceliece460896f/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/decrypt.c b/src/kem/mceliece/mceliece460896f/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/decrypt.c rename to src/kem/mceliece/mceliece460896f/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/decrypt.h b/src/kem/mceliece/mceliece460896f/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/decrypt.h rename to src/kem/mceliece/mceliece460896f/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/encrypt.c b/src/kem/mceliece/mceliece460896f/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/encrypt.c rename to src/kem/mceliece/mceliece460896f/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/encrypt.h b/src/kem/mceliece/mceliece460896f/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/encrypt.h rename to src/kem/mceliece/mceliece460896f/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/gf.c b/src/kem/mceliece/mceliece460896f/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/gf.c rename to src/kem/mceliece/mceliece460896f/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/gf.h b/src/kem/mceliece/mceliece460896f/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/gf.h rename to src/kem/mceliece/mceliece460896f/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/operations.c b/src/kem/mceliece/mceliece460896f/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/operations.c rename to src/kem/mceliece/mceliece460896f/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/params.h b/src/kem/mceliece/mceliece460896f/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/params.h rename to src/kem/mceliece/mceliece460896f/clean/params.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/pk_gen.c b/src/kem/mceliece/mceliece460896f/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/pk_gen.c rename to src/kem/mceliece/mceliece460896f/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/pk_gen.h b/src/kem/mceliece/mceliece460896f/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/pk_gen.h rename to src/kem/mceliece/mceliece460896f/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/root.c b/src/kem/mceliece/mceliece460896f/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/root.c rename to src/kem/mceliece/mceliece460896f/clean/root.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/root.h b/src/kem/mceliece/mceliece460896f/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/root.h rename to src/kem/mceliece/mceliece460896f/clean/root.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/sk_gen.c b/src/kem/mceliece/mceliece460896f/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/sk_gen.c rename to src/kem/mceliece/mceliece460896f/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/sk_gen.h b/src/kem/mceliece/mceliece460896f/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/sk_gen.h rename to src/kem/mceliece/mceliece460896f/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/synd.c b/src/kem/mceliece/mceliece460896f/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/synd.c rename to src/kem/mceliece/mceliece460896f/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/synd.h b/src/kem/mceliece/mceliece460896f/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/synd.h rename to src/kem/mceliece/mceliece460896f/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/transpose.c b/src/kem/mceliece/mceliece460896f/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/transpose.c rename to src/kem/mceliece/mceliece460896f/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/transpose.h b/src/kem/mceliece/mceliece460896f/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/transpose.h rename to src/kem/mceliece/mceliece460896f/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece460896f/clean/util.c b/src/kem/mceliece/mceliece460896f/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/util.c rename to src/kem/mceliece/mceliece460896f/clean/util.c diff --git a/crypto_kem/mceliece/mceliece460896f/clean/util.h b/src/kem/mceliece/mceliece460896f/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece460896f/clean/util.h rename to src/kem/mceliece/mceliece460896f/clean/util.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/aes256ctr.c b/src/kem/mceliece/mceliece6688128/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/aes256ctr.c rename to src/kem/mceliece/mceliece6688128/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/aes256ctr.h b/src/kem/mceliece/mceliece6688128/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/aes256ctr.h rename to src/kem/mceliece/mceliece6688128/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/api.h b/src/kem/mceliece/mceliece6688128/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/api.h rename to src/kem/mceliece/mceliece6688128/avx/api.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/benes.c b/src/kem/mceliece/mceliece6688128/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/benes.c rename to src/kem/mceliece/mceliece6688128/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/benes.h b/src/kem/mceliece/mceliece6688128/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/benes.h rename to src/kem/mceliece/mceliece6688128/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/bm.c b/src/kem/mceliece/mceliece6688128/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/bm.c rename to src/kem/mceliece/mceliece6688128/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/bm.h b/src/kem/mceliece/mceliece6688128/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/bm.h rename to src/kem/mceliece/mceliece6688128/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/consts.S b/src/kem/mceliece/mceliece6688128/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/consts.S rename to src/kem/mceliece/mceliece6688128/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/consts.inc b/src/kem/mceliece/mceliece6688128/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/consts.inc rename to src/kem/mceliece/mceliece6688128/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece6688128/avx/controlbits.c b/src/kem/mceliece/mceliece6688128/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/controlbits.c rename to src/kem/mceliece/mceliece6688128/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/controlbits.h b/src/kem/mceliece/mceliece6688128/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/controlbits.h rename to src/kem/mceliece/mceliece6688128/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/crypto_hash.h b/src/kem/mceliece/mceliece6688128/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/crypto_hash.h rename to src/kem/mceliece/mceliece6688128/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/decrypt.c b/src/kem/mceliece/mceliece6688128/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/decrypt.c rename to src/kem/mceliece/mceliece6688128/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/decrypt.h b/src/kem/mceliece/mceliece6688128/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/decrypt.h rename to src/kem/mceliece/mceliece6688128/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/encrypt.c b/src/kem/mceliece/mceliece6688128/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/encrypt.c rename to src/kem/mceliece/mceliece6688128/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/encrypt.h b/src/kem/mceliece/mceliece6688128/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/encrypt.h rename to src/kem/mceliece/mceliece6688128/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/fft.c b/src/kem/mceliece/mceliece6688128/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/fft.c rename to src/kem/mceliece/mceliece6688128/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/fft.h b/src/kem/mceliece/mceliece6688128/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/fft.h rename to src/kem/mceliece/mceliece6688128/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/fft_tr.c b/src/kem/mceliece/mceliece6688128/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/fft_tr.c rename to src/kem/mceliece/mceliece6688128/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/fft_tr.h b/src/kem/mceliece/mceliece6688128/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/fft_tr.h rename to src/kem/mceliece/mceliece6688128/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/gf.c b/src/kem/mceliece/mceliece6688128/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/gf.c rename to src/kem/mceliece/mceliece6688128/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/gf.h b/src/kem/mceliece/mceliece6688128/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/gf.h rename to src/kem/mceliece/mceliece6688128/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/int32_sort.c b/src/kem/mceliece/mceliece6688128/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/int32_sort.c rename to src/kem/mceliece/mceliece6688128/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/int32_sort.h b/src/kem/mceliece/mceliece6688128/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/int32_sort.h rename to src/kem/mceliece/mceliece6688128/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/operations.c b/src/kem/mceliece/mceliece6688128/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/operations.c rename to src/kem/mceliece/mceliece6688128/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/params.h b/src/kem/mceliece/mceliece6688128/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/params.h rename to src/kem/mceliece/mceliece6688128/avx/params.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/pk_gen.c b/src/kem/mceliece/mceliece6688128/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/pk_gen.c rename to src/kem/mceliece/mceliece6688128/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/pk_gen.h b/src/kem/mceliece/mceliece6688128/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/pk_gen.h rename to src/kem/mceliece/mceliece6688128/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/powers.inc b/src/kem/mceliece/mceliece6688128/avx/powers.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/powers.inc rename to src/kem/mceliece/mceliece6688128/avx/powers.inc diff --git a/crypto_kem/mceliece/mceliece6688128/avx/scalars_2x.inc b/src/kem/mceliece/mceliece6688128/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece6688128/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece6688128/avx/scalars_4x.inc b/src/kem/mceliece/mceliece6688128/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece6688128/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece6688128/avx/sk_gen.c b/src/kem/mceliece/mceliece6688128/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/sk_gen.c rename to src/kem/mceliece/mceliece6688128/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/sk_gen.h b/src/kem/mceliece/mceliece6688128/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/sk_gen.h rename to src/kem/mceliece/mceliece6688128/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/syndrome_asm.S b/src/kem/mceliece/mceliece6688128/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece6688128/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/transpose.c b/src/kem/mceliece/mceliece6688128/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/transpose.c rename to src/kem/mceliece/mceliece6688128/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/transpose.h b/src/kem/mceliece/mceliece6688128/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/transpose.h rename to src/kem/mceliece/mceliece6688128/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece6688128/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece6688128/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece6688128/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece6688128/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/uint32_sort.c b/src/kem/mceliece/mceliece6688128/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/uint32_sort.c rename to src/kem/mceliece/mceliece6688128/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/uint32_sort.h b/src/kem/mceliece/mceliece6688128/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/uint32_sort.h rename to src/kem/mceliece/mceliece6688128/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/update_asm.S b/src/kem/mceliece/mceliece6688128/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/update_asm.S rename to src/kem/mceliece/mceliece6688128/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/util.c b/src/kem/mceliece/mceliece6688128/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/util.c rename to src/kem/mceliece/mceliece6688128/avx/util.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/util.h b/src/kem/mceliece/mceliece6688128/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/util.h rename to src/kem/mceliece/mceliece6688128/avx/util.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec128.c b/src/kem/mceliece/mceliece6688128/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec128.c rename to src/kem/mceliece/mceliece6688128/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec128.h b/src/kem/mceliece/mceliece6688128/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec128.h rename to src/kem/mceliece/mceliece6688128/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece6688128/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece6688128/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec256.c b/src/kem/mceliece/mceliece6688128/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec256.c rename to src/kem/mceliece/mceliece6688128/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec256.h b/src/kem/mceliece/mceliece6688128/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec256.h rename to src/kem/mceliece/mceliece6688128/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece6688128/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece6688128/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece6688128/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece6688128/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece6688128/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece6688128/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece6688128/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece6688128/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128/clean/aes256ctr.c b/src/kem/mceliece/mceliece6688128/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/aes256ctr.c rename to src/kem/mceliece/mceliece6688128/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/aes256ctr.h b/src/kem/mceliece/mceliece6688128/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/aes256ctr.h rename to src/kem/mceliece/mceliece6688128/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/api.h b/src/kem/mceliece/mceliece6688128/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/api.h rename to src/kem/mceliece/mceliece6688128/clean/api.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/benes.c b/src/kem/mceliece/mceliece6688128/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/benes.c rename to src/kem/mceliece/mceliece6688128/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/benes.h b/src/kem/mceliece/mceliece6688128/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/benes.h rename to src/kem/mceliece/mceliece6688128/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/bm.c b/src/kem/mceliece/mceliece6688128/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/bm.c rename to src/kem/mceliece/mceliece6688128/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/bm.h b/src/kem/mceliece/mceliece6688128/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/bm.h rename to src/kem/mceliece/mceliece6688128/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/controlbits.c b/src/kem/mceliece/mceliece6688128/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/controlbits.c rename to src/kem/mceliece/mceliece6688128/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/controlbits.h b/src/kem/mceliece/mceliece6688128/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/controlbits.h rename to src/kem/mceliece/mceliece6688128/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/crypto_hash.h b/src/kem/mceliece/mceliece6688128/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/crypto_hash.h rename to src/kem/mceliece/mceliece6688128/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/decrypt.c b/src/kem/mceliece/mceliece6688128/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/decrypt.c rename to src/kem/mceliece/mceliece6688128/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/decrypt.h b/src/kem/mceliece/mceliece6688128/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/decrypt.h rename to src/kem/mceliece/mceliece6688128/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/encrypt.c b/src/kem/mceliece/mceliece6688128/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/encrypt.c rename to src/kem/mceliece/mceliece6688128/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/encrypt.h b/src/kem/mceliece/mceliece6688128/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/encrypt.h rename to src/kem/mceliece/mceliece6688128/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/gf.c b/src/kem/mceliece/mceliece6688128/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/gf.c rename to src/kem/mceliece/mceliece6688128/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/gf.h b/src/kem/mceliece/mceliece6688128/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/gf.h rename to src/kem/mceliece/mceliece6688128/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/operations.c b/src/kem/mceliece/mceliece6688128/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/operations.c rename to src/kem/mceliece/mceliece6688128/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/params.h b/src/kem/mceliece/mceliece6688128/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/params.h rename to src/kem/mceliece/mceliece6688128/clean/params.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/pk_gen.c b/src/kem/mceliece/mceliece6688128/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/pk_gen.c rename to src/kem/mceliece/mceliece6688128/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/pk_gen.h b/src/kem/mceliece/mceliece6688128/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/pk_gen.h rename to src/kem/mceliece/mceliece6688128/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/root.c b/src/kem/mceliece/mceliece6688128/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/root.c rename to src/kem/mceliece/mceliece6688128/clean/root.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/root.h b/src/kem/mceliece/mceliece6688128/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/root.h rename to src/kem/mceliece/mceliece6688128/clean/root.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/sk_gen.c b/src/kem/mceliece/mceliece6688128/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/sk_gen.c rename to src/kem/mceliece/mceliece6688128/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/sk_gen.h b/src/kem/mceliece/mceliece6688128/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/sk_gen.h rename to src/kem/mceliece/mceliece6688128/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/synd.c b/src/kem/mceliece/mceliece6688128/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/synd.c rename to src/kem/mceliece/mceliece6688128/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/synd.h b/src/kem/mceliece/mceliece6688128/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/synd.h rename to src/kem/mceliece/mceliece6688128/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/transpose.c b/src/kem/mceliece/mceliece6688128/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/transpose.c rename to src/kem/mceliece/mceliece6688128/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/transpose.h b/src/kem/mceliece/mceliece6688128/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/transpose.h rename to src/kem/mceliece/mceliece6688128/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece6688128/clean/util.c b/src/kem/mceliece/mceliece6688128/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/util.c rename to src/kem/mceliece/mceliece6688128/clean/util.c diff --git a/crypto_kem/mceliece/mceliece6688128/clean/util.h b/src/kem/mceliece/mceliece6688128/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128/clean/util.h rename to src/kem/mceliece/mceliece6688128/clean/util.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/aes256ctr.c b/src/kem/mceliece/mceliece6688128f/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/aes256ctr.c rename to src/kem/mceliece/mceliece6688128f/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/aes256ctr.h b/src/kem/mceliece/mceliece6688128f/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/aes256ctr.h rename to src/kem/mceliece/mceliece6688128f/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/api.h b/src/kem/mceliece/mceliece6688128f/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/api.h rename to src/kem/mceliece/mceliece6688128f/avx/api.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/benes.c b/src/kem/mceliece/mceliece6688128f/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/benes.c rename to src/kem/mceliece/mceliece6688128f/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/benes.h b/src/kem/mceliece/mceliece6688128f/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/benes.h rename to src/kem/mceliece/mceliece6688128f/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/bm.c b/src/kem/mceliece/mceliece6688128f/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/bm.c rename to src/kem/mceliece/mceliece6688128f/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/bm.h b/src/kem/mceliece/mceliece6688128f/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/bm.h rename to src/kem/mceliece/mceliece6688128f/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/consts.S b/src/kem/mceliece/mceliece6688128f/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/consts.S rename to src/kem/mceliece/mceliece6688128f/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/consts.inc b/src/kem/mceliece/mceliece6688128f/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/consts.inc rename to src/kem/mceliece/mceliece6688128f/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/controlbits.c b/src/kem/mceliece/mceliece6688128f/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/controlbits.c rename to src/kem/mceliece/mceliece6688128f/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/controlbits.h b/src/kem/mceliece/mceliece6688128f/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/controlbits.h rename to src/kem/mceliece/mceliece6688128f/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/crypto_hash.h b/src/kem/mceliece/mceliece6688128f/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/crypto_hash.h rename to src/kem/mceliece/mceliece6688128f/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/decrypt.c b/src/kem/mceliece/mceliece6688128f/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/decrypt.c rename to src/kem/mceliece/mceliece6688128f/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/decrypt.h b/src/kem/mceliece/mceliece6688128f/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/decrypt.h rename to src/kem/mceliece/mceliece6688128f/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/encrypt.c b/src/kem/mceliece/mceliece6688128f/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/encrypt.c rename to src/kem/mceliece/mceliece6688128f/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/encrypt.h b/src/kem/mceliece/mceliece6688128f/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/encrypt.h rename to src/kem/mceliece/mceliece6688128f/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/fft.c b/src/kem/mceliece/mceliece6688128f/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/fft.c rename to src/kem/mceliece/mceliece6688128f/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/fft.h b/src/kem/mceliece/mceliece6688128f/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/fft.h rename to src/kem/mceliece/mceliece6688128f/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/fft_tr.c b/src/kem/mceliece/mceliece6688128f/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/fft_tr.c rename to src/kem/mceliece/mceliece6688128f/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/fft_tr.h b/src/kem/mceliece/mceliece6688128f/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/fft_tr.h rename to src/kem/mceliece/mceliece6688128f/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/gf.c b/src/kem/mceliece/mceliece6688128f/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/gf.c rename to src/kem/mceliece/mceliece6688128f/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/gf.h b/src/kem/mceliece/mceliece6688128f/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/gf.h rename to src/kem/mceliece/mceliece6688128f/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/int32_sort.c b/src/kem/mceliece/mceliece6688128f/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/int32_sort.c rename to src/kem/mceliece/mceliece6688128f/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/int32_sort.h b/src/kem/mceliece/mceliece6688128f/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/int32_sort.h rename to src/kem/mceliece/mceliece6688128f/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/operations.c b/src/kem/mceliece/mceliece6688128f/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/operations.c rename to src/kem/mceliece/mceliece6688128f/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/params.h b/src/kem/mceliece/mceliece6688128f/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/params.h rename to src/kem/mceliece/mceliece6688128f/avx/params.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/pk_gen.c b/src/kem/mceliece/mceliece6688128f/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/pk_gen.c rename to src/kem/mceliece/mceliece6688128f/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/pk_gen.h b/src/kem/mceliece/mceliece6688128f/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/pk_gen.h rename to src/kem/mceliece/mceliece6688128f/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/powers.inc b/src/kem/mceliece/mceliece6688128f/avx/powers.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/powers.inc rename to src/kem/mceliece/mceliece6688128f/avx/powers.inc diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/scalars_2x.inc b/src/kem/mceliece/mceliece6688128f/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece6688128f/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/scalars_4x.inc b/src/kem/mceliece/mceliece6688128f/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece6688128f/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/sk_gen.c b/src/kem/mceliece/mceliece6688128f/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/sk_gen.c rename to src/kem/mceliece/mceliece6688128f/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/sk_gen.h b/src/kem/mceliece/mceliece6688128f/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/sk_gen.h rename to src/kem/mceliece/mceliece6688128f/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/syndrome_asm.S b/src/kem/mceliece/mceliece6688128f/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/transpose.c b/src/kem/mceliece/mceliece6688128f/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/transpose.c rename to src/kem/mceliece/mceliece6688128f/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/transpose.h b/src/kem/mceliece/mceliece6688128f/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/transpose.h rename to src/kem/mceliece/mceliece6688128f/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece6688128f/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece6688128f/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/uint32_sort.c b/src/kem/mceliece/mceliece6688128f/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/uint32_sort.c rename to src/kem/mceliece/mceliece6688128f/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/uint32_sort.h b/src/kem/mceliece/mceliece6688128f/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/uint32_sort.h rename to src/kem/mceliece/mceliece6688128f/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/update_asm.S b/src/kem/mceliece/mceliece6688128f/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/update_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/util.c b/src/kem/mceliece/mceliece6688128f/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/util.c rename to src/kem/mceliece/mceliece6688128f/avx/util.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/util.h b/src/kem/mceliece/mceliece6688128f/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/util.h rename to src/kem/mceliece/mceliece6688128f/avx/util.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec128.c b/src/kem/mceliece/mceliece6688128f/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec128.c rename to src/kem/mceliece/mceliece6688128f/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec128.h b/src/kem/mceliece/mceliece6688128f/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec128.h rename to src/kem/mceliece/mceliece6688128f/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece6688128f/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec256.c b/src/kem/mceliece/mceliece6688128f/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec256.c rename to src/kem/mceliece/mceliece6688128f/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec256.h b/src/kem/mceliece/mceliece6688128f/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec256.h rename to src/kem/mceliece/mceliece6688128f/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece6688128f/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece6688128f/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece6688128f/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece6688128f/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece6688128f/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/aes256ctr.c b/src/kem/mceliece/mceliece6688128f/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/aes256ctr.c rename to src/kem/mceliece/mceliece6688128f/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/aes256ctr.h b/src/kem/mceliece/mceliece6688128f/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/aes256ctr.h rename to src/kem/mceliece/mceliece6688128f/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/api.h b/src/kem/mceliece/mceliece6688128f/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/api.h rename to src/kem/mceliece/mceliece6688128f/clean/api.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/benes.c b/src/kem/mceliece/mceliece6688128f/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/benes.c rename to src/kem/mceliece/mceliece6688128f/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/benes.h b/src/kem/mceliece/mceliece6688128f/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/benes.h rename to src/kem/mceliece/mceliece6688128f/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/bm.c b/src/kem/mceliece/mceliece6688128f/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/bm.c rename to src/kem/mceliece/mceliece6688128f/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/bm.h b/src/kem/mceliece/mceliece6688128f/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/bm.h rename to src/kem/mceliece/mceliece6688128f/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/controlbits.c b/src/kem/mceliece/mceliece6688128f/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/controlbits.c rename to src/kem/mceliece/mceliece6688128f/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/controlbits.h b/src/kem/mceliece/mceliece6688128f/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/controlbits.h rename to src/kem/mceliece/mceliece6688128f/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/crypto_hash.h b/src/kem/mceliece/mceliece6688128f/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/crypto_hash.h rename to src/kem/mceliece/mceliece6688128f/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/decrypt.c b/src/kem/mceliece/mceliece6688128f/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/decrypt.c rename to src/kem/mceliece/mceliece6688128f/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/decrypt.h b/src/kem/mceliece/mceliece6688128f/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/decrypt.h rename to src/kem/mceliece/mceliece6688128f/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/encrypt.c b/src/kem/mceliece/mceliece6688128f/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/encrypt.c rename to src/kem/mceliece/mceliece6688128f/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/encrypt.h b/src/kem/mceliece/mceliece6688128f/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/encrypt.h rename to src/kem/mceliece/mceliece6688128f/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/gf.c b/src/kem/mceliece/mceliece6688128f/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/gf.c rename to src/kem/mceliece/mceliece6688128f/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/gf.h b/src/kem/mceliece/mceliece6688128f/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/gf.h rename to src/kem/mceliece/mceliece6688128f/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/operations.c b/src/kem/mceliece/mceliece6688128f/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/operations.c rename to src/kem/mceliece/mceliece6688128f/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/params.h b/src/kem/mceliece/mceliece6688128f/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/params.h rename to src/kem/mceliece/mceliece6688128f/clean/params.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/pk_gen.c b/src/kem/mceliece/mceliece6688128f/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/pk_gen.c rename to src/kem/mceliece/mceliece6688128f/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/pk_gen.h b/src/kem/mceliece/mceliece6688128f/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/pk_gen.h rename to src/kem/mceliece/mceliece6688128f/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/root.c b/src/kem/mceliece/mceliece6688128f/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/root.c rename to src/kem/mceliece/mceliece6688128f/clean/root.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/root.h b/src/kem/mceliece/mceliece6688128f/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/root.h rename to src/kem/mceliece/mceliece6688128f/clean/root.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/sk_gen.c b/src/kem/mceliece/mceliece6688128f/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/sk_gen.c rename to src/kem/mceliece/mceliece6688128f/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/sk_gen.h b/src/kem/mceliece/mceliece6688128f/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/sk_gen.h rename to src/kem/mceliece/mceliece6688128f/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/synd.c b/src/kem/mceliece/mceliece6688128f/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/synd.c rename to src/kem/mceliece/mceliece6688128f/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/synd.h b/src/kem/mceliece/mceliece6688128f/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/synd.h rename to src/kem/mceliece/mceliece6688128f/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/transpose.c b/src/kem/mceliece/mceliece6688128f/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/transpose.c rename to src/kem/mceliece/mceliece6688128f/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/transpose.h b/src/kem/mceliece/mceliece6688128f/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/transpose.h rename to src/kem/mceliece/mceliece6688128f/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/util.c b/src/kem/mceliece/mceliece6688128f/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/util.c rename to src/kem/mceliece/mceliece6688128f/clean/util.c diff --git a/crypto_kem/mceliece/mceliece6688128f/clean/util.h b/src/kem/mceliece/mceliece6688128f/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6688128f/clean/util.h rename to src/kem/mceliece/mceliece6688128f/clean/util.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/aes256ctr.c b/src/kem/mceliece/mceliece6960119/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/aes256ctr.c rename to src/kem/mceliece/mceliece6960119/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/aes256ctr.h b/src/kem/mceliece/mceliece6960119/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/aes256ctr.h rename to src/kem/mceliece/mceliece6960119/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/api.h b/src/kem/mceliece/mceliece6960119/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/api.h rename to src/kem/mceliece/mceliece6960119/avx/api.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/benes.c b/src/kem/mceliece/mceliece6960119/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/benes.c rename to src/kem/mceliece/mceliece6960119/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/benes.h b/src/kem/mceliece/mceliece6960119/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/benes.h rename to src/kem/mceliece/mceliece6960119/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/bm.c b/src/kem/mceliece/mceliece6960119/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/bm.c rename to src/kem/mceliece/mceliece6960119/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/bm.h b/src/kem/mceliece/mceliece6960119/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/bm.h rename to src/kem/mceliece/mceliece6960119/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/consts.S b/src/kem/mceliece/mceliece6960119/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/consts.S rename to src/kem/mceliece/mceliece6960119/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/consts.inc b/src/kem/mceliece/mceliece6960119/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/consts.inc rename to src/kem/mceliece/mceliece6960119/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece6960119/avx/controlbits.c b/src/kem/mceliece/mceliece6960119/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/controlbits.c rename to src/kem/mceliece/mceliece6960119/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/controlbits.h b/src/kem/mceliece/mceliece6960119/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/controlbits.h rename to src/kem/mceliece/mceliece6960119/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/crypto_hash.h b/src/kem/mceliece/mceliece6960119/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/crypto_hash.h rename to src/kem/mceliece/mceliece6960119/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/decrypt.c b/src/kem/mceliece/mceliece6960119/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/decrypt.c rename to src/kem/mceliece/mceliece6960119/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/decrypt.h b/src/kem/mceliece/mceliece6960119/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/decrypt.h rename to src/kem/mceliece/mceliece6960119/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/encrypt.c b/src/kem/mceliece/mceliece6960119/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/encrypt.c rename to src/kem/mceliece/mceliece6960119/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/encrypt.h b/src/kem/mceliece/mceliece6960119/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/encrypt.h rename to src/kem/mceliece/mceliece6960119/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/fft.c b/src/kem/mceliece/mceliece6960119/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/fft.c rename to src/kem/mceliece/mceliece6960119/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/fft.h b/src/kem/mceliece/mceliece6960119/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/fft.h rename to src/kem/mceliece/mceliece6960119/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/fft_tr.c b/src/kem/mceliece/mceliece6960119/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/fft_tr.c rename to src/kem/mceliece/mceliece6960119/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/fft_tr.h b/src/kem/mceliece/mceliece6960119/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/fft_tr.h rename to src/kem/mceliece/mceliece6960119/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/gf.c b/src/kem/mceliece/mceliece6960119/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/gf.c rename to src/kem/mceliece/mceliece6960119/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/gf.h b/src/kem/mceliece/mceliece6960119/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/gf.h rename to src/kem/mceliece/mceliece6960119/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/int32_sort.c b/src/kem/mceliece/mceliece6960119/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/int32_sort.c rename to src/kem/mceliece/mceliece6960119/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/int32_sort.h b/src/kem/mceliece/mceliece6960119/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/int32_sort.h rename to src/kem/mceliece/mceliece6960119/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/operations.c b/src/kem/mceliece/mceliece6960119/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/operations.c rename to src/kem/mceliece/mceliece6960119/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/params.h b/src/kem/mceliece/mceliece6960119/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/params.h rename to src/kem/mceliece/mceliece6960119/avx/params.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/pk_gen.c b/src/kem/mceliece/mceliece6960119/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/pk_gen.c rename to src/kem/mceliece/mceliece6960119/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/pk_gen.h b/src/kem/mceliece/mceliece6960119/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/pk_gen.h rename to src/kem/mceliece/mceliece6960119/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/scalars_2x.inc b/src/kem/mceliece/mceliece6960119/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece6960119/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece6960119/avx/scalars_4x.inc b/src/kem/mceliece/mceliece6960119/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece6960119/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece6960119/avx/sk_gen.c b/src/kem/mceliece/mceliece6960119/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/sk_gen.c rename to src/kem/mceliece/mceliece6960119/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/sk_gen.h b/src/kem/mceliece/mceliece6960119/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/sk_gen.h rename to src/kem/mceliece/mceliece6960119/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/syndrome_asm.S b/src/kem/mceliece/mceliece6960119/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece6960119/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/transpose.c b/src/kem/mceliece/mceliece6960119/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/transpose.c rename to src/kem/mceliece/mceliece6960119/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/transpose.h b/src/kem/mceliece/mceliece6960119/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/transpose.h rename to src/kem/mceliece/mceliece6960119/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece6960119/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece6960119/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece6960119/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece6960119/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/uint32_sort.c b/src/kem/mceliece/mceliece6960119/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/uint32_sort.c rename to src/kem/mceliece/mceliece6960119/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/uint32_sort.h b/src/kem/mceliece/mceliece6960119/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/uint32_sort.h rename to src/kem/mceliece/mceliece6960119/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/update_asm.S b/src/kem/mceliece/mceliece6960119/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/update_asm.S rename to src/kem/mceliece/mceliece6960119/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/util.c b/src/kem/mceliece/mceliece6960119/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/util.c rename to src/kem/mceliece/mceliece6960119/avx/util.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/util.h b/src/kem/mceliece/mceliece6960119/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/util.h rename to src/kem/mceliece/mceliece6960119/avx/util.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec128.c b/src/kem/mceliece/mceliece6960119/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec128.c rename to src/kem/mceliece/mceliece6960119/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec128.h b/src/kem/mceliece/mceliece6960119/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec128.h rename to src/kem/mceliece/mceliece6960119/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece6960119/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece6960119/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec256.c b/src/kem/mceliece/mceliece6960119/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec256.c rename to src/kem/mceliece/mceliece6960119/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec256.h b/src/kem/mceliece/mceliece6960119/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec256.h rename to src/kem/mceliece/mceliece6960119/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece6960119/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece6960119/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece6960119/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece6960119/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece6960119/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece6960119/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece6960119/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece6960119/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119/clean/aes256ctr.c b/src/kem/mceliece/mceliece6960119/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/aes256ctr.c rename to src/kem/mceliece/mceliece6960119/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/aes256ctr.h b/src/kem/mceliece/mceliece6960119/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/aes256ctr.h rename to src/kem/mceliece/mceliece6960119/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/api.h b/src/kem/mceliece/mceliece6960119/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/api.h rename to src/kem/mceliece/mceliece6960119/clean/api.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/benes.c b/src/kem/mceliece/mceliece6960119/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/benes.c rename to src/kem/mceliece/mceliece6960119/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/benes.h b/src/kem/mceliece/mceliece6960119/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/benes.h rename to src/kem/mceliece/mceliece6960119/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/bm.c b/src/kem/mceliece/mceliece6960119/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/bm.c rename to src/kem/mceliece/mceliece6960119/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/bm.h b/src/kem/mceliece/mceliece6960119/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/bm.h rename to src/kem/mceliece/mceliece6960119/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/controlbits.c b/src/kem/mceliece/mceliece6960119/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/controlbits.c rename to src/kem/mceliece/mceliece6960119/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/controlbits.h b/src/kem/mceliece/mceliece6960119/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/controlbits.h rename to src/kem/mceliece/mceliece6960119/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/crypto_hash.h b/src/kem/mceliece/mceliece6960119/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/crypto_hash.h rename to src/kem/mceliece/mceliece6960119/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/decrypt.c b/src/kem/mceliece/mceliece6960119/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/decrypt.c rename to src/kem/mceliece/mceliece6960119/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/decrypt.h b/src/kem/mceliece/mceliece6960119/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/decrypt.h rename to src/kem/mceliece/mceliece6960119/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/encrypt.c b/src/kem/mceliece/mceliece6960119/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/encrypt.c rename to src/kem/mceliece/mceliece6960119/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/encrypt.h b/src/kem/mceliece/mceliece6960119/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/encrypt.h rename to src/kem/mceliece/mceliece6960119/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/gf.c b/src/kem/mceliece/mceliece6960119/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/gf.c rename to src/kem/mceliece/mceliece6960119/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/gf.h b/src/kem/mceliece/mceliece6960119/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/gf.h rename to src/kem/mceliece/mceliece6960119/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/operations.c b/src/kem/mceliece/mceliece6960119/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/operations.c rename to src/kem/mceliece/mceliece6960119/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/params.h b/src/kem/mceliece/mceliece6960119/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/params.h rename to src/kem/mceliece/mceliece6960119/clean/params.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/pk_gen.c b/src/kem/mceliece/mceliece6960119/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/pk_gen.c rename to src/kem/mceliece/mceliece6960119/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/pk_gen.h b/src/kem/mceliece/mceliece6960119/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/pk_gen.h rename to src/kem/mceliece/mceliece6960119/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/root.c b/src/kem/mceliece/mceliece6960119/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/root.c rename to src/kem/mceliece/mceliece6960119/clean/root.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/root.h b/src/kem/mceliece/mceliece6960119/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/root.h rename to src/kem/mceliece/mceliece6960119/clean/root.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/sk_gen.c b/src/kem/mceliece/mceliece6960119/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/sk_gen.c rename to src/kem/mceliece/mceliece6960119/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/sk_gen.h b/src/kem/mceliece/mceliece6960119/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/sk_gen.h rename to src/kem/mceliece/mceliece6960119/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/synd.c b/src/kem/mceliece/mceliece6960119/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/synd.c rename to src/kem/mceliece/mceliece6960119/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/synd.h b/src/kem/mceliece/mceliece6960119/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/synd.h rename to src/kem/mceliece/mceliece6960119/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/transpose.c b/src/kem/mceliece/mceliece6960119/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/transpose.c rename to src/kem/mceliece/mceliece6960119/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/transpose.h b/src/kem/mceliece/mceliece6960119/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/transpose.h rename to src/kem/mceliece/mceliece6960119/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece6960119/clean/util.c b/src/kem/mceliece/mceliece6960119/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/util.c rename to src/kem/mceliece/mceliece6960119/clean/util.c diff --git a/crypto_kem/mceliece/mceliece6960119/clean/util.h b/src/kem/mceliece/mceliece6960119/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119/clean/util.h rename to src/kem/mceliece/mceliece6960119/clean/util.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/aes256ctr.c b/src/kem/mceliece/mceliece6960119f/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/aes256ctr.c rename to src/kem/mceliece/mceliece6960119f/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/aes256ctr.h b/src/kem/mceliece/mceliece6960119f/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/aes256ctr.h rename to src/kem/mceliece/mceliece6960119f/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/api.h b/src/kem/mceliece/mceliece6960119f/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/api.h rename to src/kem/mceliece/mceliece6960119f/avx/api.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/benes.c b/src/kem/mceliece/mceliece6960119f/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/benes.c rename to src/kem/mceliece/mceliece6960119f/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/benes.h b/src/kem/mceliece/mceliece6960119f/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/benes.h rename to src/kem/mceliece/mceliece6960119f/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/bm.c b/src/kem/mceliece/mceliece6960119f/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/bm.c rename to src/kem/mceliece/mceliece6960119f/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/bm.h b/src/kem/mceliece/mceliece6960119f/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/bm.h rename to src/kem/mceliece/mceliece6960119f/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/consts.S b/src/kem/mceliece/mceliece6960119f/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/consts.S rename to src/kem/mceliece/mceliece6960119f/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/consts.inc b/src/kem/mceliece/mceliece6960119f/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/consts.inc rename to src/kem/mceliece/mceliece6960119f/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/controlbits.c b/src/kem/mceliece/mceliece6960119f/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/controlbits.c rename to src/kem/mceliece/mceliece6960119f/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/controlbits.h b/src/kem/mceliece/mceliece6960119f/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/controlbits.h rename to src/kem/mceliece/mceliece6960119f/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/crypto_hash.h b/src/kem/mceliece/mceliece6960119f/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/crypto_hash.h rename to src/kem/mceliece/mceliece6960119f/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/decrypt.c b/src/kem/mceliece/mceliece6960119f/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/decrypt.c rename to src/kem/mceliece/mceliece6960119f/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/decrypt.h b/src/kem/mceliece/mceliece6960119f/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/decrypt.h rename to src/kem/mceliece/mceliece6960119f/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/encrypt.c b/src/kem/mceliece/mceliece6960119f/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/encrypt.c rename to src/kem/mceliece/mceliece6960119f/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/encrypt.h b/src/kem/mceliece/mceliece6960119f/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/encrypt.h rename to src/kem/mceliece/mceliece6960119f/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/fft.c b/src/kem/mceliece/mceliece6960119f/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/fft.c rename to src/kem/mceliece/mceliece6960119f/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/fft.h b/src/kem/mceliece/mceliece6960119f/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/fft.h rename to src/kem/mceliece/mceliece6960119f/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/fft_tr.c b/src/kem/mceliece/mceliece6960119f/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/fft_tr.c rename to src/kem/mceliece/mceliece6960119f/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/fft_tr.h b/src/kem/mceliece/mceliece6960119f/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/fft_tr.h rename to src/kem/mceliece/mceliece6960119f/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/gf.c b/src/kem/mceliece/mceliece6960119f/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/gf.c rename to src/kem/mceliece/mceliece6960119f/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/gf.h b/src/kem/mceliece/mceliece6960119f/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/gf.h rename to src/kem/mceliece/mceliece6960119f/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/int32_sort.c b/src/kem/mceliece/mceliece6960119f/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/int32_sort.c rename to src/kem/mceliece/mceliece6960119f/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/int32_sort.h b/src/kem/mceliece/mceliece6960119f/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/int32_sort.h rename to src/kem/mceliece/mceliece6960119f/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/operations.c b/src/kem/mceliece/mceliece6960119f/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/operations.c rename to src/kem/mceliece/mceliece6960119f/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/params.h b/src/kem/mceliece/mceliece6960119f/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/params.h rename to src/kem/mceliece/mceliece6960119f/avx/params.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/pk_gen.c b/src/kem/mceliece/mceliece6960119f/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/pk_gen.c rename to src/kem/mceliece/mceliece6960119f/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/pk_gen.h b/src/kem/mceliece/mceliece6960119f/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/pk_gen.h rename to src/kem/mceliece/mceliece6960119f/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/scalars_2x.inc b/src/kem/mceliece/mceliece6960119f/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece6960119f/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/scalars_4x.inc b/src/kem/mceliece/mceliece6960119f/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece6960119f/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/sk_gen.c b/src/kem/mceliece/mceliece6960119f/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/sk_gen.c rename to src/kem/mceliece/mceliece6960119f/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/sk_gen.h b/src/kem/mceliece/mceliece6960119f/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/sk_gen.h rename to src/kem/mceliece/mceliece6960119f/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/syndrome_asm.S b/src/kem/mceliece/mceliece6960119f/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/transpose.c b/src/kem/mceliece/mceliece6960119f/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/transpose.c rename to src/kem/mceliece/mceliece6960119f/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/transpose.h b/src/kem/mceliece/mceliece6960119f/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/transpose.h rename to src/kem/mceliece/mceliece6960119f/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece6960119f/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece6960119f/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/uint32_sort.c b/src/kem/mceliece/mceliece6960119f/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/uint32_sort.c rename to src/kem/mceliece/mceliece6960119f/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/uint32_sort.h b/src/kem/mceliece/mceliece6960119f/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/uint32_sort.h rename to src/kem/mceliece/mceliece6960119f/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/update_asm.S b/src/kem/mceliece/mceliece6960119f/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/update_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/util.c b/src/kem/mceliece/mceliece6960119f/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/util.c rename to src/kem/mceliece/mceliece6960119f/avx/util.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/util.h b/src/kem/mceliece/mceliece6960119f/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/util.h rename to src/kem/mceliece/mceliece6960119f/avx/util.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec128.c b/src/kem/mceliece/mceliece6960119f/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec128.c rename to src/kem/mceliece/mceliece6960119f/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec128.h b/src/kem/mceliece/mceliece6960119f/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec128.h rename to src/kem/mceliece/mceliece6960119f/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece6960119f/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec256.c b/src/kem/mceliece/mceliece6960119f/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec256.c rename to src/kem/mceliece/mceliece6960119f/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec256.h b/src/kem/mceliece/mceliece6960119f/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec256.h rename to src/kem/mceliece/mceliece6960119f/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece6960119f/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece6960119f/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece6960119f/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece6960119f/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece6960119f/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/aes256ctr.c b/src/kem/mceliece/mceliece6960119f/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/aes256ctr.c rename to src/kem/mceliece/mceliece6960119f/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/aes256ctr.h b/src/kem/mceliece/mceliece6960119f/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/aes256ctr.h rename to src/kem/mceliece/mceliece6960119f/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/api.h b/src/kem/mceliece/mceliece6960119f/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/api.h rename to src/kem/mceliece/mceliece6960119f/clean/api.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/benes.c b/src/kem/mceliece/mceliece6960119f/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/benes.c rename to src/kem/mceliece/mceliece6960119f/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/benes.h b/src/kem/mceliece/mceliece6960119f/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/benes.h rename to src/kem/mceliece/mceliece6960119f/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/bm.c b/src/kem/mceliece/mceliece6960119f/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/bm.c rename to src/kem/mceliece/mceliece6960119f/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/bm.h b/src/kem/mceliece/mceliece6960119f/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/bm.h rename to src/kem/mceliece/mceliece6960119f/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/controlbits.c b/src/kem/mceliece/mceliece6960119f/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/controlbits.c rename to src/kem/mceliece/mceliece6960119f/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/controlbits.h b/src/kem/mceliece/mceliece6960119f/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/controlbits.h rename to src/kem/mceliece/mceliece6960119f/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/crypto_hash.h b/src/kem/mceliece/mceliece6960119f/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/crypto_hash.h rename to src/kem/mceliece/mceliece6960119f/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/decrypt.c b/src/kem/mceliece/mceliece6960119f/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/decrypt.c rename to src/kem/mceliece/mceliece6960119f/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/decrypt.h b/src/kem/mceliece/mceliece6960119f/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/decrypt.h rename to src/kem/mceliece/mceliece6960119f/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/encrypt.c b/src/kem/mceliece/mceliece6960119f/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/encrypt.c rename to src/kem/mceliece/mceliece6960119f/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/encrypt.h b/src/kem/mceliece/mceliece6960119f/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/encrypt.h rename to src/kem/mceliece/mceliece6960119f/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/gf.c b/src/kem/mceliece/mceliece6960119f/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/gf.c rename to src/kem/mceliece/mceliece6960119f/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/gf.h b/src/kem/mceliece/mceliece6960119f/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/gf.h rename to src/kem/mceliece/mceliece6960119f/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/operations.c b/src/kem/mceliece/mceliece6960119f/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/operations.c rename to src/kem/mceliece/mceliece6960119f/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/params.h b/src/kem/mceliece/mceliece6960119f/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/params.h rename to src/kem/mceliece/mceliece6960119f/clean/params.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/pk_gen.c b/src/kem/mceliece/mceliece6960119f/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/pk_gen.c rename to src/kem/mceliece/mceliece6960119f/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/pk_gen.h b/src/kem/mceliece/mceliece6960119f/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/pk_gen.h rename to src/kem/mceliece/mceliece6960119f/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/root.c b/src/kem/mceliece/mceliece6960119f/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/root.c rename to src/kem/mceliece/mceliece6960119f/clean/root.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/root.h b/src/kem/mceliece/mceliece6960119f/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/root.h rename to src/kem/mceliece/mceliece6960119f/clean/root.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/sk_gen.c b/src/kem/mceliece/mceliece6960119f/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/sk_gen.c rename to src/kem/mceliece/mceliece6960119f/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/sk_gen.h b/src/kem/mceliece/mceliece6960119f/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/sk_gen.h rename to src/kem/mceliece/mceliece6960119f/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/synd.c b/src/kem/mceliece/mceliece6960119f/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/synd.c rename to src/kem/mceliece/mceliece6960119f/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/synd.h b/src/kem/mceliece/mceliece6960119f/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/synd.h rename to src/kem/mceliece/mceliece6960119f/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/transpose.c b/src/kem/mceliece/mceliece6960119f/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/transpose.c rename to src/kem/mceliece/mceliece6960119f/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/transpose.h b/src/kem/mceliece/mceliece6960119f/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/transpose.h rename to src/kem/mceliece/mceliece6960119f/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/util.c b/src/kem/mceliece/mceliece6960119f/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/util.c rename to src/kem/mceliece/mceliece6960119f/clean/util.c diff --git a/crypto_kem/mceliece/mceliece6960119f/clean/util.h b/src/kem/mceliece/mceliece6960119f/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece6960119f/clean/util.h rename to src/kem/mceliece/mceliece6960119f/clean/util.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/aes256ctr.c b/src/kem/mceliece/mceliece8192128/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/aes256ctr.c rename to src/kem/mceliece/mceliece8192128/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/aes256ctr.h b/src/kem/mceliece/mceliece8192128/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/aes256ctr.h rename to src/kem/mceliece/mceliece8192128/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/api.h b/src/kem/mceliece/mceliece8192128/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/api.h rename to src/kem/mceliece/mceliece8192128/avx/api.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/benes.c b/src/kem/mceliece/mceliece8192128/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/benes.c rename to src/kem/mceliece/mceliece8192128/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/benes.h b/src/kem/mceliece/mceliece8192128/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/benes.h rename to src/kem/mceliece/mceliece8192128/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/bm.c b/src/kem/mceliece/mceliece8192128/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/bm.c rename to src/kem/mceliece/mceliece8192128/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/bm.h b/src/kem/mceliece/mceliece8192128/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/bm.h rename to src/kem/mceliece/mceliece8192128/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/consts.S b/src/kem/mceliece/mceliece8192128/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/consts.S rename to src/kem/mceliece/mceliece8192128/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/consts.inc b/src/kem/mceliece/mceliece8192128/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/consts.inc rename to src/kem/mceliece/mceliece8192128/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece8192128/avx/controlbits.c b/src/kem/mceliece/mceliece8192128/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/controlbits.c rename to src/kem/mceliece/mceliece8192128/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/controlbits.h b/src/kem/mceliece/mceliece8192128/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/controlbits.h rename to src/kem/mceliece/mceliece8192128/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/crypto_hash.h b/src/kem/mceliece/mceliece8192128/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/crypto_hash.h rename to src/kem/mceliece/mceliece8192128/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/decrypt.c b/src/kem/mceliece/mceliece8192128/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/decrypt.c rename to src/kem/mceliece/mceliece8192128/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/decrypt.h b/src/kem/mceliece/mceliece8192128/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/decrypt.h rename to src/kem/mceliece/mceliece8192128/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/encrypt.c b/src/kem/mceliece/mceliece8192128/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/encrypt.c rename to src/kem/mceliece/mceliece8192128/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/encrypt.h b/src/kem/mceliece/mceliece8192128/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/encrypt.h rename to src/kem/mceliece/mceliece8192128/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/fft.c b/src/kem/mceliece/mceliece8192128/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/fft.c rename to src/kem/mceliece/mceliece8192128/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/fft.h b/src/kem/mceliece/mceliece8192128/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/fft.h rename to src/kem/mceliece/mceliece8192128/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/fft_tr.c b/src/kem/mceliece/mceliece8192128/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/fft_tr.c rename to src/kem/mceliece/mceliece8192128/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/fft_tr.h b/src/kem/mceliece/mceliece8192128/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/fft_tr.h rename to src/kem/mceliece/mceliece8192128/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/gf.c b/src/kem/mceliece/mceliece8192128/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/gf.c rename to src/kem/mceliece/mceliece8192128/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/gf.h b/src/kem/mceliece/mceliece8192128/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/gf.h rename to src/kem/mceliece/mceliece8192128/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/int32_sort.c b/src/kem/mceliece/mceliece8192128/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/int32_sort.c rename to src/kem/mceliece/mceliece8192128/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/int32_sort.h b/src/kem/mceliece/mceliece8192128/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/int32_sort.h rename to src/kem/mceliece/mceliece8192128/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/operations.c b/src/kem/mceliece/mceliece8192128/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/operations.c rename to src/kem/mceliece/mceliece8192128/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/params.h b/src/kem/mceliece/mceliece8192128/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/params.h rename to src/kem/mceliece/mceliece8192128/avx/params.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/pk_gen.c b/src/kem/mceliece/mceliece8192128/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/pk_gen.c rename to src/kem/mceliece/mceliece8192128/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/pk_gen.h b/src/kem/mceliece/mceliece8192128/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/pk_gen.h rename to src/kem/mceliece/mceliece8192128/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/powers.inc b/src/kem/mceliece/mceliece8192128/avx/powers.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/powers.inc rename to src/kem/mceliece/mceliece8192128/avx/powers.inc diff --git a/crypto_kem/mceliece/mceliece8192128/avx/scalars_2x.inc b/src/kem/mceliece/mceliece8192128/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece8192128/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece8192128/avx/scalars_4x.inc b/src/kem/mceliece/mceliece8192128/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece8192128/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece8192128/avx/sk_gen.c b/src/kem/mceliece/mceliece8192128/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/sk_gen.c rename to src/kem/mceliece/mceliece8192128/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/sk_gen.h b/src/kem/mceliece/mceliece8192128/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/sk_gen.h rename to src/kem/mceliece/mceliece8192128/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/syndrome_asm.S b/src/kem/mceliece/mceliece8192128/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece8192128/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/transpose.c b/src/kem/mceliece/mceliece8192128/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/transpose.c rename to src/kem/mceliece/mceliece8192128/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/transpose.h b/src/kem/mceliece/mceliece8192128/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/transpose.h rename to src/kem/mceliece/mceliece8192128/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece8192128/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece8192128/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece8192128/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece8192128/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/uint32_sort.c b/src/kem/mceliece/mceliece8192128/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/uint32_sort.c rename to src/kem/mceliece/mceliece8192128/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/uint32_sort.h b/src/kem/mceliece/mceliece8192128/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/uint32_sort.h rename to src/kem/mceliece/mceliece8192128/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/update_asm.S b/src/kem/mceliece/mceliece8192128/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/update_asm.S rename to src/kem/mceliece/mceliece8192128/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/util.c b/src/kem/mceliece/mceliece8192128/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/util.c rename to src/kem/mceliece/mceliece8192128/avx/util.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/util.h b/src/kem/mceliece/mceliece8192128/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/util.h rename to src/kem/mceliece/mceliece8192128/avx/util.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec128.c b/src/kem/mceliece/mceliece8192128/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec128.c rename to src/kem/mceliece/mceliece8192128/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec128.h b/src/kem/mceliece/mceliece8192128/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec128.h rename to src/kem/mceliece/mceliece8192128/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece8192128/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece8192128/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec256.c b/src/kem/mceliece/mceliece8192128/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec256.c rename to src/kem/mceliece/mceliece8192128/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec256.h b/src/kem/mceliece/mceliece8192128/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec256.h rename to src/kem/mceliece/mceliece8192128/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece8192128/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece8192128/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece8192128/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece8192128/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece8192128/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece8192128/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece8192128/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece8192128/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128/clean/aes256ctr.c b/src/kem/mceliece/mceliece8192128/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/aes256ctr.c rename to src/kem/mceliece/mceliece8192128/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/aes256ctr.h b/src/kem/mceliece/mceliece8192128/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/aes256ctr.h rename to src/kem/mceliece/mceliece8192128/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/api.h b/src/kem/mceliece/mceliece8192128/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/api.h rename to src/kem/mceliece/mceliece8192128/clean/api.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/benes.c b/src/kem/mceliece/mceliece8192128/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/benes.c rename to src/kem/mceliece/mceliece8192128/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/benes.h b/src/kem/mceliece/mceliece8192128/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/benes.h rename to src/kem/mceliece/mceliece8192128/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/bm.c b/src/kem/mceliece/mceliece8192128/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/bm.c rename to src/kem/mceliece/mceliece8192128/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/bm.h b/src/kem/mceliece/mceliece8192128/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/bm.h rename to src/kem/mceliece/mceliece8192128/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/controlbits.c b/src/kem/mceliece/mceliece8192128/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/controlbits.c rename to src/kem/mceliece/mceliece8192128/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/controlbits.h b/src/kem/mceliece/mceliece8192128/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/controlbits.h rename to src/kem/mceliece/mceliece8192128/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/crypto_hash.h b/src/kem/mceliece/mceliece8192128/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/crypto_hash.h rename to src/kem/mceliece/mceliece8192128/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/decrypt.c b/src/kem/mceliece/mceliece8192128/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/decrypt.c rename to src/kem/mceliece/mceliece8192128/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/decrypt.h b/src/kem/mceliece/mceliece8192128/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/decrypt.h rename to src/kem/mceliece/mceliece8192128/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/encrypt.c b/src/kem/mceliece/mceliece8192128/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/encrypt.c rename to src/kem/mceliece/mceliece8192128/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/encrypt.h b/src/kem/mceliece/mceliece8192128/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/encrypt.h rename to src/kem/mceliece/mceliece8192128/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/gf.c b/src/kem/mceliece/mceliece8192128/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/gf.c rename to src/kem/mceliece/mceliece8192128/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/gf.h b/src/kem/mceliece/mceliece8192128/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/gf.h rename to src/kem/mceliece/mceliece8192128/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/operations.c b/src/kem/mceliece/mceliece8192128/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/operations.c rename to src/kem/mceliece/mceliece8192128/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/params.h b/src/kem/mceliece/mceliece8192128/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/params.h rename to src/kem/mceliece/mceliece8192128/clean/params.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/pk_gen.c b/src/kem/mceliece/mceliece8192128/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/pk_gen.c rename to src/kem/mceliece/mceliece8192128/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/pk_gen.h b/src/kem/mceliece/mceliece8192128/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/pk_gen.h rename to src/kem/mceliece/mceliece8192128/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/root.c b/src/kem/mceliece/mceliece8192128/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/root.c rename to src/kem/mceliece/mceliece8192128/clean/root.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/root.h b/src/kem/mceliece/mceliece8192128/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/root.h rename to src/kem/mceliece/mceliece8192128/clean/root.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/sk_gen.c b/src/kem/mceliece/mceliece8192128/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/sk_gen.c rename to src/kem/mceliece/mceliece8192128/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/sk_gen.h b/src/kem/mceliece/mceliece8192128/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/sk_gen.h rename to src/kem/mceliece/mceliece8192128/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/synd.c b/src/kem/mceliece/mceliece8192128/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/synd.c rename to src/kem/mceliece/mceliece8192128/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/synd.h b/src/kem/mceliece/mceliece8192128/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/synd.h rename to src/kem/mceliece/mceliece8192128/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/transpose.c b/src/kem/mceliece/mceliece8192128/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/transpose.c rename to src/kem/mceliece/mceliece8192128/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/transpose.h b/src/kem/mceliece/mceliece8192128/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/transpose.h rename to src/kem/mceliece/mceliece8192128/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece8192128/clean/util.c b/src/kem/mceliece/mceliece8192128/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/util.c rename to src/kem/mceliece/mceliece8192128/clean/util.c diff --git a/crypto_kem/mceliece/mceliece8192128/clean/util.h b/src/kem/mceliece/mceliece8192128/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128/clean/util.h rename to src/kem/mceliece/mceliece8192128/clean/util.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/aes256ctr.c b/src/kem/mceliece/mceliece8192128f/avx/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/aes256ctr.c rename to src/kem/mceliece/mceliece8192128f/avx/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/aes256ctr.h b/src/kem/mceliece/mceliece8192128f/avx/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/aes256ctr.h rename to src/kem/mceliece/mceliece8192128f/avx/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/api.h b/src/kem/mceliece/mceliece8192128f/avx/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/api.h rename to src/kem/mceliece/mceliece8192128f/avx/api.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/benes.c b/src/kem/mceliece/mceliece8192128f/avx/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/benes.c rename to src/kem/mceliece/mceliece8192128f/avx/benes.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/benes.h b/src/kem/mceliece/mceliece8192128f/avx/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/benes.h rename to src/kem/mceliece/mceliece8192128f/avx/benes.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/bm.c b/src/kem/mceliece/mceliece8192128f/avx/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/bm.c rename to src/kem/mceliece/mceliece8192128f/avx/bm.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/bm.h b/src/kem/mceliece/mceliece8192128f/avx/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/bm.h rename to src/kem/mceliece/mceliece8192128f/avx/bm.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/consts.S b/src/kem/mceliece/mceliece8192128f/avx/consts.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/consts.S rename to src/kem/mceliece/mceliece8192128f/avx/consts.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/consts.inc b/src/kem/mceliece/mceliece8192128f/avx/consts.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/consts.inc rename to src/kem/mceliece/mceliece8192128f/avx/consts.inc diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/controlbits.c b/src/kem/mceliece/mceliece8192128f/avx/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/controlbits.c rename to src/kem/mceliece/mceliece8192128f/avx/controlbits.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/controlbits.h b/src/kem/mceliece/mceliece8192128f/avx/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/controlbits.h rename to src/kem/mceliece/mceliece8192128f/avx/controlbits.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/crypto_hash.h b/src/kem/mceliece/mceliece8192128f/avx/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/crypto_hash.h rename to src/kem/mceliece/mceliece8192128f/avx/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/decrypt.c b/src/kem/mceliece/mceliece8192128f/avx/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/decrypt.c rename to src/kem/mceliece/mceliece8192128f/avx/decrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/decrypt.h b/src/kem/mceliece/mceliece8192128f/avx/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/decrypt.h rename to src/kem/mceliece/mceliece8192128f/avx/decrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/encrypt.c b/src/kem/mceliece/mceliece8192128f/avx/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/encrypt.c rename to src/kem/mceliece/mceliece8192128f/avx/encrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/encrypt.h b/src/kem/mceliece/mceliece8192128f/avx/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/encrypt.h rename to src/kem/mceliece/mceliece8192128f/avx/encrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/fft.c b/src/kem/mceliece/mceliece8192128f/avx/fft.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/fft.c rename to src/kem/mceliece/mceliece8192128f/avx/fft.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/fft.h b/src/kem/mceliece/mceliece8192128f/avx/fft.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/fft.h rename to src/kem/mceliece/mceliece8192128f/avx/fft.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/fft_tr.c b/src/kem/mceliece/mceliece8192128f/avx/fft_tr.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/fft_tr.c rename to src/kem/mceliece/mceliece8192128f/avx/fft_tr.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/fft_tr.h b/src/kem/mceliece/mceliece8192128f/avx/fft_tr.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/fft_tr.h rename to src/kem/mceliece/mceliece8192128f/avx/fft_tr.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/gf.c b/src/kem/mceliece/mceliece8192128f/avx/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/gf.c rename to src/kem/mceliece/mceliece8192128f/avx/gf.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/gf.h b/src/kem/mceliece/mceliece8192128f/avx/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/gf.h rename to src/kem/mceliece/mceliece8192128f/avx/gf.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/int32_sort.c b/src/kem/mceliece/mceliece8192128f/avx/int32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/int32_sort.c rename to src/kem/mceliece/mceliece8192128f/avx/int32_sort.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/int32_sort.h b/src/kem/mceliece/mceliece8192128f/avx/int32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/int32_sort.h rename to src/kem/mceliece/mceliece8192128f/avx/int32_sort.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/operations.c b/src/kem/mceliece/mceliece8192128f/avx/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/operations.c rename to src/kem/mceliece/mceliece8192128f/avx/operations.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/params.h b/src/kem/mceliece/mceliece8192128f/avx/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/params.h rename to src/kem/mceliece/mceliece8192128f/avx/params.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/pk_gen.c b/src/kem/mceliece/mceliece8192128f/avx/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/pk_gen.c rename to src/kem/mceliece/mceliece8192128f/avx/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/pk_gen.h b/src/kem/mceliece/mceliece8192128f/avx/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/pk_gen.h rename to src/kem/mceliece/mceliece8192128f/avx/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/powers.inc b/src/kem/mceliece/mceliece8192128f/avx/powers.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/powers.inc rename to src/kem/mceliece/mceliece8192128f/avx/powers.inc diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/scalars_2x.inc b/src/kem/mceliece/mceliece8192128f/avx/scalars_2x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/scalars_2x.inc rename to src/kem/mceliece/mceliece8192128f/avx/scalars_2x.inc diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/scalars_4x.inc b/src/kem/mceliece/mceliece8192128f/avx/scalars_4x.inc similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/scalars_4x.inc rename to src/kem/mceliece/mceliece8192128f/avx/scalars_4x.inc diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/sk_gen.c b/src/kem/mceliece/mceliece8192128f/avx/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/sk_gen.c rename to src/kem/mceliece/mceliece8192128f/avx/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/sk_gen.h b/src/kem/mceliece/mceliece8192128f/avx/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/sk_gen.h rename to src/kem/mceliece/mceliece8192128f/avx/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/syndrome_asm.S b/src/kem/mceliece/mceliece8192128f/avx/syndrome_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/syndrome_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/syndrome_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/transpose.c b/src/kem/mceliece/mceliece8192128f/avx/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/transpose.c rename to src/kem/mceliece/mceliece8192128f/avx/transpose.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/transpose.h b/src/kem/mceliece/mceliece8192128f/avx/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/transpose.h rename to src/kem/mceliece/mceliece8192128f/avx/transpose.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/transpose_64x128_sp_asm.S b/src/kem/mceliece/mceliece8192128f/avx/transpose_64x128_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/transpose_64x128_sp_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/transpose_64x128_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/transpose_64x256_sp_asm.S b/src/kem/mceliece/mceliece8192128f/avx/transpose_64x256_sp_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/transpose_64x256_sp_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/transpose_64x256_sp_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/uint32_sort.c b/src/kem/mceliece/mceliece8192128f/avx/uint32_sort.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/uint32_sort.c rename to src/kem/mceliece/mceliece8192128f/avx/uint32_sort.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/uint32_sort.h b/src/kem/mceliece/mceliece8192128f/avx/uint32_sort.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/uint32_sort.h rename to src/kem/mceliece/mceliece8192128f/avx/uint32_sort.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/update_asm.S b/src/kem/mceliece/mceliece8192128f/avx/update_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/update_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/update_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/util.c b/src/kem/mceliece/mceliece8192128f/avx/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/util.c rename to src/kem/mceliece/mceliece8192128f/avx/util.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/util.h b/src/kem/mceliece/mceliece8192128f/avx/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/util.h rename to src/kem/mceliece/mceliece8192128f/avx/util.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec128.c b/src/kem/mceliece/mceliece8192128f/avx/vec128.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec128.c rename to src/kem/mceliece/mceliece8192128f/avx/vec128.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec128.h b/src/kem/mceliece/mceliece8192128f/avx/vec128.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec128.h rename to src/kem/mceliece/mceliece8192128f/avx/vec128.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec128_mul_asm.S b/src/kem/mceliece/mceliece8192128f/avx/vec128_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec128_mul_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/vec128_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec256.c b/src/kem/mceliece/mceliece8192128f/avx/vec256.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec256.c rename to src/kem/mceliece/mceliece8192128f/avx/vec256.c diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec256.h b/src/kem/mceliece/mceliece8192128f/avx/vec256.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec256.h rename to src/kem/mceliece/mceliece8192128f/avx/vec256.h diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec256_ama_asm.S b/src/kem/mceliece/mceliece8192128f/avx/vec256_ama_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec256_ama_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/vec256_ama_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec256_maa_asm.S b/src/kem/mceliece/mceliece8192128f/avx/vec256_maa_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec256_maa_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/vec256_maa_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec256_mul_asm.S b/src/kem/mceliece/mceliece8192128f/avx/vec256_mul_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec256_mul_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/vec256_mul_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/avx/vec_reduce_asm.S b/src/kem/mceliece/mceliece8192128f/avx/vec_reduce_asm.S similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/avx/vec_reduce_asm.S rename to src/kem/mceliece/mceliece8192128f/avx/vec_reduce_asm.S diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/aes256ctr.c b/src/kem/mceliece/mceliece8192128f/clean/aes256ctr.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/aes256ctr.c rename to src/kem/mceliece/mceliece8192128f/clean/aes256ctr.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/aes256ctr.h b/src/kem/mceliece/mceliece8192128f/clean/aes256ctr.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/aes256ctr.h rename to src/kem/mceliece/mceliece8192128f/clean/aes256ctr.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/api.h b/src/kem/mceliece/mceliece8192128f/clean/api.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/api.h rename to src/kem/mceliece/mceliece8192128f/clean/api.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/benes.c b/src/kem/mceliece/mceliece8192128f/clean/benes.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/benes.c rename to src/kem/mceliece/mceliece8192128f/clean/benes.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/benes.h b/src/kem/mceliece/mceliece8192128f/clean/benes.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/benes.h rename to src/kem/mceliece/mceliece8192128f/clean/benes.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/bm.c b/src/kem/mceliece/mceliece8192128f/clean/bm.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/bm.c rename to src/kem/mceliece/mceliece8192128f/clean/bm.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/bm.h b/src/kem/mceliece/mceliece8192128f/clean/bm.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/bm.h rename to src/kem/mceliece/mceliece8192128f/clean/bm.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/controlbits.c b/src/kem/mceliece/mceliece8192128f/clean/controlbits.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/controlbits.c rename to src/kem/mceliece/mceliece8192128f/clean/controlbits.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/controlbits.h b/src/kem/mceliece/mceliece8192128f/clean/controlbits.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/controlbits.h rename to src/kem/mceliece/mceliece8192128f/clean/controlbits.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/crypto_hash.h b/src/kem/mceliece/mceliece8192128f/clean/crypto_hash.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/crypto_hash.h rename to src/kem/mceliece/mceliece8192128f/clean/crypto_hash.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/decrypt.c b/src/kem/mceliece/mceliece8192128f/clean/decrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/decrypt.c rename to src/kem/mceliece/mceliece8192128f/clean/decrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/decrypt.h b/src/kem/mceliece/mceliece8192128f/clean/decrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/decrypt.h rename to src/kem/mceliece/mceliece8192128f/clean/decrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/encrypt.c b/src/kem/mceliece/mceliece8192128f/clean/encrypt.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/encrypt.c rename to src/kem/mceliece/mceliece8192128f/clean/encrypt.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/encrypt.h b/src/kem/mceliece/mceliece8192128f/clean/encrypt.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/encrypt.h rename to src/kem/mceliece/mceliece8192128f/clean/encrypt.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/gf.c b/src/kem/mceliece/mceliece8192128f/clean/gf.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/gf.c rename to src/kem/mceliece/mceliece8192128f/clean/gf.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/gf.h b/src/kem/mceliece/mceliece8192128f/clean/gf.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/gf.h rename to src/kem/mceliece/mceliece8192128f/clean/gf.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/operations.c b/src/kem/mceliece/mceliece8192128f/clean/operations.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/operations.c rename to src/kem/mceliece/mceliece8192128f/clean/operations.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/params.h b/src/kem/mceliece/mceliece8192128f/clean/params.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/params.h rename to src/kem/mceliece/mceliece8192128f/clean/params.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/pk_gen.c b/src/kem/mceliece/mceliece8192128f/clean/pk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/pk_gen.c rename to src/kem/mceliece/mceliece8192128f/clean/pk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/pk_gen.h b/src/kem/mceliece/mceliece8192128f/clean/pk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/pk_gen.h rename to src/kem/mceliece/mceliece8192128f/clean/pk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/root.c b/src/kem/mceliece/mceliece8192128f/clean/root.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/root.c rename to src/kem/mceliece/mceliece8192128f/clean/root.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/root.h b/src/kem/mceliece/mceliece8192128f/clean/root.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/root.h rename to src/kem/mceliece/mceliece8192128f/clean/root.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/sk_gen.c b/src/kem/mceliece/mceliece8192128f/clean/sk_gen.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/sk_gen.c rename to src/kem/mceliece/mceliece8192128f/clean/sk_gen.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/sk_gen.h b/src/kem/mceliece/mceliece8192128f/clean/sk_gen.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/sk_gen.h rename to src/kem/mceliece/mceliece8192128f/clean/sk_gen.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/synd.c b/src/kem/mceliece/mceliece8192128f/clean/synd.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/synd.c rename to src/kem/mceliece/mceliece8192128f/clean/synd.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/synd.h b/src/kem/mceliece/mceliece8192128f/clean/synd.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/synd.h rename to src/kem/mceliece/mceliece8192128f/clean/synd.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/transpose.c b/src/kem/mceliece/mceliece8192128f/clean/transpose.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/transpose.c rename to src/kem/mceliece/mceliece8192128f/clean/transpose.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/transpose.h b/src/kem/mceliece/mceliece8192128f/clean/transpose.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/transpose.h rename to src/kem/mceliece/mceliece8192128f/clean/transpose.h diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/util.c b/src/kem/mceliece/mceliece8192128f/clean/util.c similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/util.c rename to src/kem/mceliece/mceliece8192128f/clean/util.c diff --git a/crypto_kem/mceliece/mceliece8192128f/clean/util.h b/src/kem/mceliece/mceliece8192128f/clean/util.h similarity index 100% rename from crypto_kem/mceliece/mceliece8192128f/clean/util.h rename to src/kem/mceliece/mceliece8192128f/clean/util.h diff --git a/src/kem/ntru/ntruhps2048509/avx2/CMakeLists.txt b/src/kem/ntru/ntruhps2048509/avx2/CMakeLists.txt new file mode 100644 index 00000000..80193c5a --- /dev/null +++ b/src/kem/ntru/ntruhps2048509/avx2/CMakeLists.txt @@ -0,0 +1,32 @@ +set( + SRC_AVX2_NTRUHPS2048509 + cmov.c + crypto_sort_int32.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod_3_Phi_n.s + poly_mod_q_Phi_n.s + poly_r2_inv.c + poly_r2_mul.s + poly_rq_mul.s + poly_rq_to_s3.s + poly_s3_inv.c + sample.c + sample_iid.c + square_126_509_shufbytes.s + square_1_509_patience.s + square_15_509_shufbytes.s + square_252_509_shufbytes.s + square_30_509_shufbytes.s + square_3_509_patience.s + square_63_509_shufbytes.s + square_6_509_patience.s + vec32_sample_iid.s +) + +define_kem_alg(ntruhps2048509_avx2 + PQCLEAN_NTRUHPS2048509_AVX2 "${SRC_AVX2_NTRUHPS2048509}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/api.h b/src/kem/ntru/ntruhps2048509/avx2/api.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/api.h rename to src/kem/ntru/ntruhps2048509/avx2/api.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/cmov.c b/src/kem/ntru/ntruhps2048509/avx2/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/cmov.c rename to src/kem/ntru/ntruhps2048509/avx2/cmov.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/cmov.h b/src/kem/ntru/ntruhps2048509/avx2/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/cmov.h rename to src/kem/ntru/ntruhps2048509/avx2/cmov.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.c b/src/kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.c rename to src/kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.h b/src/kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.h rename to src/kem/ntru/ntruhps2048509/avx2/crypto_sort_int32.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/kem.c b/src/kem/ntru/ntruhps2048509/avx2/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/kem.c rename to src/kem/ntru/ntruhps2048509/avx2/kem.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/owcpa.c b/src/kem/ntru/ntruhps2048509/avx2/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/owcpa.c rename to src/kem/ntru/ntruhps2048509/avx2/owcpa.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/owcpa.h b/src/kem/ntru/ntruhps2048509/avx2/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/owcpa.h rename to src/kem/ntru/ntruhps2048509/avx2/owcpa.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/pack3.c b/src/kem/ntru/ntruhps2048509/avx2/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/pack3.c rename to src/kem/ntru/ntruhps2048509/avx2/pack3.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/packq.c b/src/kem/ntru/ntruhps2048509/avx2/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/packq.c rename to src/kem/ntru/ntruhps2048509/avx2/packq.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/params.h b/src/kem/ntru/ntruhps2048509/avx2/params.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/params.h rename to src/kem/ntru/ntruhps2048509/avx2/params.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly.c b/src/kem/ntru/ntruhps2048509/avx2/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly.c rename to src/kem/ntru/ntruhps2048509/avx2/poly.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly.h b/src/kem/ntru/ntruhps2048509/avx2/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly.h rename to src/kem/ntru/ntruhps2048509/avx2/poly.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_lift.c b/src/kem/ntru/ntruhps2048509/avx2/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_lift.c rename to src/kem/ntru/ntruhps2048509/avx2/poly_lift.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_mod_3_Phi_n.s b/src/kem/ntru/ntruhps2048509/avx2/poly_mod_3_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_mod_3_Phi_n.s rename to src/kem/ntru/ntruhps2048509/avx2/poly_mod_3_Phi_n.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_mod_q_Phi_n.s b/src/kem/ntru/ntruhps2048509/avx2/poly_mod_q_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_mod_q_Phi_n.s rename to src/kem/ntru/ntruhps2048509/avx2/poly_mod_q_Phi_n.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_r2_inv.c b/src/kem/ntru/ntruhps2048509/avx2/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_r2_inv.c rename to src/kem/ntru/ntruhps2048509/avx2/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_r2_inv.h b/src/kem/ntru/ntruhps2048509/avx2/poly_r2_inv.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_r2_inv.h rename to src/kem/ntru/ntruhps2048509/avx2/poly_r2_inv.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_r2_mul.s b/src/kem/ntru/ntruhps2048509/avx2/poly_r2_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_r2_mul.s rename to src/kem/ntru/ntruhps2048509/avx2/poly_r2_mul.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_rq_mul.s b/src/kem/ntru/ntruhps2048509/avx2/poly_rq_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_rq_mul.s rename to src/kem/ntru/ntruhps2048509/avx2/poly_rq_mul.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_rq_to_s3.s b/src/kem/ntru/ntruhps2048509/avx2/poly_rq_to_s3.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_rq_to_s3.s rename to src/kem/ntru/ntruhps2048509/avx2/poly_rq_to_s3.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/poly_s3_inv.c b/src/kem/ntru/ntruhps2048509/avx2/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/poly_s3_inv.c rename to src/kem/ntru/ntruhps2048509/avx2/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/sample.c b/src/kem/ntru/ntruhps2048509/avx2/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/sample.c rename to src/kem/ntru/ntruhps2048509/avx2/sample.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/sample.h b/src/kem/ntru/ntruhps2048509/avx2/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/sample.h rename to src/kem/ntru/ntruhps2048509/avx2/sample.h diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/sample_iid.c b/src/kem/ntru/ntruhps2048509/avx2/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/sample_iid.c rename to src/kem/ntru/ntruhps2048509/avx2/sample_iid.c diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_126_509_shufbytes.s b/src/kem/ntru/ntruhps2048509/avx2/square_126_509_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_126_509_shufbytes.s rename to src/kem/ntru/ntruhps2048509/avx2/square_126_509_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_15_509_shufbytes.s b/src/kem/ntru/ntruhps2048509/avx2/square_15_509_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_15_509_shufbytes.s rename to src/kem/ntru/ntruhps2048509/avx2/square_15_509_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_1_509_patience.s b/src/kem/ntru/ntruhps2048509/avx2/square_1_509_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_1_509_patience.s rename to src/kem/ntru/ntruhps2048509/avx2/square_1_509_patience.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_252_509_shufbytes.s b/src/kem/ntru/ntruhps2048509/avx2/square_252_509_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_252_509_shufbytes.s rename to src/kem/ntru/ntruhps2048509/avx2/square_252_509_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_30_509_shufbytes.s b/src/kem/ntru/ntruhps2048509/avx2/square_30_509_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_30_509_shufbytes.s rename to src/kem/ntru/ntruhps2048509/avx2/square_30_509_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_3_509_patience.s b/src/kem/ntru/ntruhps2048509/avx2/square_3_509_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_3_509_patience.s rename to src/kem/ntru/ntruhps2048509/avx2/square_3_509_patience.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_63_509_shufbytes.s b/src/kem/ntru/ntruhps2048509/avx2/square_63_509_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_63_509_shufbytes.s rename to src/kem/ntru/ntruhps2048509/avx2/square_63_509_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/square_6_509_patience.s b/src/kem/ntru/ntruhps2048509/avx2/square_6_509_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/square_6_509_patience.s rename to src/kem/ntru/ntruhps2048509/avx2/square_6_509_patience.s diff --git a/crypto_kem/ntru/ntruhps2048509/avx2/vec32_sample_iid.s b/src/kem/ntru/ntruhps2048509/avx2/vec32_sample_iid.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/avx2/vec32_sample_iid.s rename to src/kem/ntru/ntruhps2048509/avx2/vec32_sample_iid.s diff --git a/src/kem/ntru/ntruhps2048509/clean/CMakeLists.txt b/src/kem/ntru/ntruhps2048509/clean/CMakeLists.txt new file mode 100644 index 00000000..ecdd6514 --- /dev/null +++ b/src/kem/ntru/ntruhps2048509/clean/CMakeLists.txt @@ -0,0 +1,20 @@ +set( + SRC_CLEAN_NTRUHPS2048509 + cmov.c + crypto_sort_int32.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod.c + poly_r2_inv.c + poly_rq_mul.c + poly_s3_inv.c + sample.c + sample_iid.c +) + +define_kem_alg(ntruhps2048509_clean + PQCLEAN_NTRUHPS2048509_CLEAN "${SRC_CLEAN_NTRUHPS2048509}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhps2048509/clean/api.h b/src/kem/ntru/ntruhps2048509/clean/api.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/api.h rename to src/kem/ntru/ntruhps2048509/clean/api.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/cmov.c b/src/kem/ntru/ntruhps2048509/clean/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/cmov.c rename to src/kem/ntru/ntruhps2048509/clean/cmov.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/cmov.h b/src/kem/ntru/ntruhps2048509/clean/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/cmov.h rename to src/kem/ntru/ntruhps2048509/clean/cmov.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/crypto_sort_int32.c b/src/kem/ntru/ntruhps2048509/clean/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/crypto_sort_int32.c rename to src/kem/ntru/ntruhps2048509/clean/crypto_sort_int32.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/crypto_sort_int32.h b/src/kem/ntru/ntruhps2048509/clean/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/crypto_sort_int32.h rename to src/kem/ntru/ntruhps2048509/clean/crypto_sort_int32.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/kem.c b/src/kem/ntru/ntruhps2048509/clean/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/kem.c rename to src/kem/ntru/ntruhps2048509/clean/kem.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/owcpa.c b/src/kem/ntru/ntruhps2048509/clean/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/owcpa.c rename to src/kem/ntru/ntruhps2048509/clean/owcpa.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/owcpa.h b/src/kem/ntru/ntruhps2048509/clean/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/owcpa.h rename to src/kem/ntru/ntruhps2048509/clean/owcpa.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/pack3.c b/src/kem/ntru/ntruhps2048509/clean/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/pack3.c rename to src/kem/ntru/ntruhps2048509/clean/pack3.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/packq.c b/src/kem/ntru/ntruhps2048509/clean/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/packq.c rename to src/kem/ntru/ntruhps2048509/clean/packq.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/params.h b/src/kem/ntru/ntruhps2048509/clean/params.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/params.h rename to src/kem/ntru/ntruhps2048509/clean/params.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly.c b/src/kem/ntru/ntruhps2048509/clean/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly.c rename to src/kem/ntru/ntruhps2048509/clean/poly.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly.h b/src/kem/ntru/ntruhps2048509/clean/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly.h rename to src/kem/ntru/ntruhps2048509/clean/poly.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly_lift.c b/src/kem/ntru/ntruhps2048509/clean/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly_lift.c rename to src/kem/ntru/ntruhps2048509/clean/poly_lift.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly_mod.c b/src/kem/ntru/ntruhps2048509/clean/poly_mod.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly_mod.c rename to src/kem/ntru/ntruhps2048509/clean/poly_mod.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly_r2_inv.c b/src/kem/ntru/ntruhps2048509/clean/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly_r2_inv.c rename to src/kem/ntru/ntruhps2048509/clean/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly_rq_mul.c b/src/kem/ntru/ntruhps2048509/clean/poly_rq_mul.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly_rq_mul.c rename to src/kem/ntru/ntruhps2048509/clean/poly_rq_mul.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/poly_s3_inv.c b/src/kem/ntru/ntruhps2048509/clean/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/poly_s3_inv.c rename to src/kem/ntru/ntruhps2048509/clean/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/sample.c b/src/kem/ntru/ntruhps2048509/clean/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/sample.c rename to src/kem/ntru/ntruhps2048509/clean/sample.c diff --git a/crypto_kem/ntru/ntruhps2048509/clean/sample.h b/src/kem/ntru/ntruhps2048509/clean/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/sample.h rename to src/kem/ntru/ntruhps2048509/clean/sample.h diff --git a/crypto_kem/ntru/ntruhps2048509/clean/sample_iid.c b/src/kem/ntru/ntruhps2048509/clean/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048509/clean/sample_iid.c rename to src/kem/ntru/ntruhps2048509/clean/sample_iid.c diff --git a/src/kem/ntru/ntruhps2048677/avx2/CMakeLists.txt b/src/kem/ntru/ntruhps2048677/avx2/CMakeLists.txt new file mode 100644 index 00000000..aac0a6b1 --- /dev/null +++ b/src/kem/ntru/ntruhps2048677/avx2/CMakeLists.txt @@ -0,0 +1,34 @@ +set( + SRC_AVX2_NTRUHPS2048677 + cmov.c + crypto_sort_int32.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod_3_Phi_n.s + poly_mod_q_Phi_n.s + poly_r2_inv.c + poly_r2_mul.s + poly_rq_mul.s + poly_rq_to_s3.s + poly_s3_inv.c + sample.c + sample_iid.c + square_10_677_shufbytes.s + square_1_677_patience.s + square_168_677_shufbytes.s + square_21_677_shufbytes.s + square_2_677_patience.s + square_336_677_shufbytes.s + square_3_677_patience.s + square_42_677_shufbytes.s + square_5_677_patience.s + square_84_677_shufbytes.s + vec32_sample_iid.s +) + +define_kem_alg(ntruhps2048677_avx2 + PQCLEAN_NTRUHPS2048677_AVX2 "${SRC_AVX2_NTRUHPS2048677}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/api.h b/src/kem/ntru/ntruhps2048677/avx2/api.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/api.h rename to src/kem/ntru/ntruhps2048677/avx2/api.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/cmov.c b/src/kem/ntru/ntruhps2048677/avx2/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/cmov.c rename to src/kem/ntru/ntruhps2048677/avx2/cmov.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/cmov.h b/src/kem/ntru/ntruhps2048677/avx2/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/cmov.h rename to src/kem/ntru/ntruhps2048677/avx2/cmov.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.c b/src/kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.c rename to src/kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.h b/src/kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.h rename to src/kem/ntru/ntruhps2048677/avx2/crypto_sort_int32.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/kem.c b/src/kem/ntru/ntruhps2048677/avx2/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/kem.c rename to src/kem/ntru/ntruhps2048677/avx2/kem.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/owcpa.c b/src/kem/ntru/ntruhps2048677/avx2/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/owcpa.c rename to src/kem/ntru/ntruhps2048677/avx2/owcpa.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/owcpa.h b/src/kem/ntru/ntruhps2048677/avx2/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/owcpa.h rename to src/kem/ntru/ntruhps2048677/avx2/owcpa.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/pack3.c b/src/kem/ntru/ntruhps2048677/avx2/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/pack3.c rename to src/kem/ntru/ntruhps2048677/avx2/pack3.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/packq.c b/src/kem/ntru/ntruhps2048677/avx2/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/packq.c rename to src/kem/ntru/ntruhps2048677/avx2/packq.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/params.h b/src/kem/ntru/ntruhps2048677/avx2/params.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/params.h rename to src/kem/ntru/ntruhps2048677/avx2/params.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly.c b/src/kem/ntru/ntruhps2048677/avx2/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly.c rename to src/kem/ntru/ntruhps2048677/avx2/poly.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly.h b/src/kem/ntru/ntruhps2048677/avx2/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly.h rename to src/kem/ntru/ntruhps2048677/avx2/poly.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_lift.c b/src/kem/ntru/ntruhps2048677/avx2/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_lift.c rename to src/kem/ntru/ntruhps2048677/avx2/poly_lift.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_mod_3_Phi_n.s b/src/kem/ntru/ntruhps2048677/avx2/poly_mod_3_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_mod_3_Phi_n.s rename to src/kem/ntru/ntruhps2048677/avx2/poly_mod_3_Phi_n.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_mod_q_Phi_n.s b/src/kem/ntru/ntruhps2048677/avx2/poly_mod_q_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_mod_q_Phi_n.s rename to src/kem/ntru/ntruhps2048677/avx2/poly_mod_q_Phi_n.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_r2_inv.c b/src/kem/ntru/ntruhps2048677/avx2/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_r2_inv.c rename to src/kem/ntru/ntruhps2048677/avx2/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_r2_inv.h b/src/kem/ntru/ntruhps2048677/avx2/poly_r2_inv.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_r2_inv.h rename to src/kem/ntru/ntruhps2048677/avx2/poly_r2_inv.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_r2_mul.s b/src/kem/ntru/ntruhps2048677/avx2/poly_r2_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_r2_mul.s rename to src/kem/ntru/ntruhps2048677/avx2/poly_r2_mul.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_rq_mul.s b/src/kem/ntru/ntruhps2048677/avx2/poly_rq_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_rq_mul.s rename to src/kem/ntru/ntruhps2048677/avx2/poly_rq_mul.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_rq_to_s3.s b/src/kem/ntru/ntruhps2048677/avx2/poly_rq_to_s3.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_rq_to_s3.s rename to src/kem/ntru/ntruhps2048677/avx2/poly_rq_to_s3.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/poly_s3_inv.c b/src/kem/ntru/ntruhps2048677/avx2/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/poly_s3_inv.c rename to src/kem/ntru/ntruhps2048677/avx2/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/sample.c b/src/kem/ntru/ntruhps2048677/avx2/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/sample.c rename to src/kem/ntru/ntruhps2048677/avx2/sample.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/sample.h b/src/kem/ntru/ntruhps2048677/avx2/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/sample.h rename to src/kem/ntru/ntruhps2048677/avx2/sample.h diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/sample_iid.c b/src/kem/ntru/ntruhps2048677/avx2/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/sample_iid.c rename to src/kem/ntru/ntruhps2048677/avx2/sample_iid.c diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_10_677_shufbytes.s b/src/kem/ntru/ntruhps2048677/avx2/square_10_677_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_10_677_shufbytes.s rename to src/kem/ntru/ntruhps2048677/avx2/square_10_677_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_168_677_shufbytes.s b/src/kem/ntru/ntruhps2048677/avx2/square_168_677_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_168_677_shufbytes.s rename to src/kem/ntru/ntruhps2048677/avx2/square_168_677_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_1_677_patience.s b/src/kem/ntru/ntruhps2048677/avx2/square_1_677_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_1_677_patience.s rename to src/kem/ntru/ntruhps2048677/avx2/square_1_677_patience.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_21_677_shufbytes.s b/src/kem/ntru/ntruhps2048677/avx2/square_21_677_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_21_677_shufbytes.s rename to src/kem/ntru/ntruhps2048677/avx2/square_21_677_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_2_677_patience.s b/src/kem/ntru/ntruhps2048677/avx2/square_2_677_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_2_677_patience.s rename to src/kem/ntru/ntruhps2048677/avx2/square_2_677_patience.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_336_677_shufbytes.s b/src/kem/ntru/ntruhps2048677/avx2/square_336_677_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_336_677_shufbytes.s rename to src/kem/ntru/ntruhps2048677/avx2/square_336_677_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_3_677_patience.s b/src/kem/ntru/ntruhps2048677/avx2/square_3_677_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_3_677_patience.s rename to src/kem/ntru/ntruhps2048677/avx2/square_3_677_patience.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_42_677_shufbytes.s b/src/kem/ntru/ntruhps2048677/avx2/square_42_677_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_42_677_shufbytes.s rename to src/kem/ntru/ntruhps2048677/avx2/square_42_677_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_5_677_patience.s b/src/kem/ntru/ntruhps2048677/avx2/square_5_677_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_5_677_patience.s rename to src/kem/ntru/ntruhps2048677/avx2/square_5_677_patience.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/square_84_677_shufbytes.s b/src/kem/ntru/ntruhps2048677/avx2/square_84_677_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/square_84_677_shufbytes.s rename to src/kem/ntru/ntruhps2048677/avx2/square_84_677_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps2048677/avx2/vec32_sample_iid.s b/src/kem/ntru/ntruhps2048677/avx2/vec32_sample_iid.s similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/avx2/vec32_sample_iid.s rename to src/kem/ntru/ntruhps2048677/avx2/vec32_sample_iid.s diff --git a/src/kem/ntru/ntruhps2048677/clean/CMakeLists.txt b/src/kem/ntru/ntruhps2048677/clean/CMakeLists.txt new file mode 100644 index 00000000..4f3e87ec --- /dev/null +++ b/src/kem/ntru/ntruhps2048677/clean/CMakeLists.txt @@ -0,0 +1,20 @@ +set( + SRC_CLEAN_NTRUHPS2048677 + cmov.c + crypto_sort_int32.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod.c + poly_r2_inv.c + poly_rq_mul.c + poly_s3_inv.c + sample.c + sample_iid.c +) + +define_kem_alg(ntruhps2048677_clean + PQCLEAN_NTRUHPS2048677_CLEAN "${SRC_CLEAN_NTRUHPS2048677}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhps2048677/clean/api.h b/src/kem/ntru/ntruhps2048677/clean/api.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/api.h rename to src/kem/ntru/ntruhps2048677/clean/api.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/cmov.c b/src/kem/ntru/ntruhps2048677/clean/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/cmov.c rename to src/kem/ntru/ntruhps2048677/clean/cmov.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/cmov.h b/src/kem/ntru/ntruhps2048677/clean/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/cmov.h rename to src/kem/ntru/ntruhps2048677/clean/cmov.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/crypto_sort_int32.c b/src/kem/ntru/ntruhps2048677/clean/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/crypto_sort_int32.c rename to src/kem/ntru/ntruhps2048677/clean/crypto_sort_int32.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/crypto_sort_int32.h b/src/kem/ntru/ntruhps2048677/clean/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/crypto_sort_int32.h rename to src/kem/ntru/ntruhps2048677/clean/crypto_sort_int32.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/kem.c b/src/kem/ntru/ntruhps2048677/clean/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/kem.c rename to src/kem/ntru/ntruhps2048677/clean/kem.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/owcpa.c b/src/kem/ntru/ntruhps2048677/clean/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/owcpa.c rename to src/kem/ntru/ntruhps2048677/clean/owcpa.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/owcpa.h b/src/kem/ntru/ntruhps2048677/clean/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/owcpa.h rename to src/kem/ntru/ntruhps2048677/clean/owcpa.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/pack3.c b/src/kem/ntru/ntruhps2048677/clean/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/pack3.c rename to src/kem/ntru/ntruhps2048677/clean/pack3.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/packq.c b/src/kem/ntru/ntruhps2048677/clean/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/packq.c rename to src/kem/ntru/ntruhps2048677/clean/packq.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/params.h b/src/kem/ntru/ntruhps2048677/clean/params.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/params.h rename to src/kem/ntru/ntruhps2048677/clean/params.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly.c b/src/kem/ntru/ntruhps2048677/clean/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly.c rename to src/kem/ntru/ntruhps2048677/clean/poly.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly.h b/src/kem/ntru/ntruhps2048677/clean/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly.h rename to src/kem/ntru/ntruhps2048677/clean/poly.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly_lift.c b/src/kem/ntru/ntruhps2048677/clean/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly_lift.c rename to src/kem/ntru/ntruhps2048677/clean/poly_lift.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly_mod.c b/src/kem/ntru/ntruhps2048677/clean/poly_mod.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly_mod.c rename to src/kem/ntru/ntruhps2048677/clean/poly_mod.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly_r2_inv.c b/src/kem/ntru/ntruhps2048677/clean/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly_r2_inv.c rename to src/kem/ntru/ntruhps2048677/clean/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly_rq_mul.c b/src/kem/ntru/ntruhps2048677/clean/poly_rq_mul.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly_rq_mul.c rename to src/kem/ntru/ntruhps2048677/clean/poly_rq_mul.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/poly_s3_inv.c b/src/kem/ntru/ntruhps2048677/clean/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/poly_s3_inv.c rename to src/kem/ntru/ntruhps2048677/clean/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/sample.c b/src/kem/ntru/ntruhps2048677/clean/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/sample.c rename to src/kem/ntru/ntruhps2048677/clean/sample.c diff --git a/crypto_kem/ntru/ntruhps2048677/clean/sample.h b/src/kem/ntru/ntruhps2048677/clean/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/sample.h rename to src/kem/ntru/ntruhps2048677/clean/sample.h diff --git a/crypto_kem/ntru/ntruhps2048677/clean/sample_iid.c b/src/kem/ntru/ntruhps2048677/clean/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhps2048677/clean/sample_iid.c rename to src/kem/ntru/ntruhps2048677/clean/sample_iid.c diff --git a/src/kem/ntru/ntruhps4096821/avx2/CMakeLists.txt b/src/kem/ntru/ntruhps4096821/avx2/CMakeLists.txt new file mode 100644 index 00000000..a657905f --- /dev/null +++ b/src/kem/ntru/ntruhps4096821/avx2/CMakeLists.txt @@ -0,0 +1,33 @@ +set( + SRC_AVX2_NTRUHPS4096821 + cmov.c + crypto_sort_int32.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod_3_Phi_n.s + poly_mod_q_Phi_n.s + poly_r2_inv.c + poly_r2_mul.s + poly_rq_mul.s + poly_rq_to_s3.s + poly_s3_inv.c + sample.c + sample_iid.c + square_102_821_shufbytes.s + square_12_821_shufbytes.s + square_1_821_patience.s + square_204_821_shufbytes.s + square_24_821_shufbytes.s + square_3_821_patience.s + square_408_821_shufbytes.s + square_51_821_shufbytes.s + square_6_821_patience.s + vec32_sample_iid.s +) + +define_kem_alg(ntruhps4096821_avx2 + PQCLEAN_NTRUHPS4096821_AVX2 "${SRC_AVX2_NTRUHPS4096821}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/api.h b/src/kem/ntru/ntruhps4096821/avx2/api.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/api.h rename to src/kem/ntru/ntruhps4096821/avx2/api.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/cmov.c b/src/kem/ntru/ntruhps4096821/avx2/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/cmov.c rename to src/kem/ntru/ntruhps4096821/avx2/cmov.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/cmov.h b/src/kem/ntru/ntruhps4096821/avx2/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/cmov.h rename to src/kem/ntru/ntruhps4096821/avx2/cmov.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.c b/src/kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.c rename to src/kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.h b/src/kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.h rename to src/kem/ntru/ntruhps4096821/avx2/crypto_sort_int32.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/kem.c b/src/kem/ntru/ntruhps4096821/avx2/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/kem.c rename to src/kem/ntru/ntruhps4096821/avx2/kem.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/owcpa.c b/src/kem/ntru/ntruhps4096821/avx2/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/owcpa.c rename to src/kem/ntru/ntruhps4096821/avx2/owcpa.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/owcpa.h b/src/kem/ntru/ntruhps4096821/avx2/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/owcpa.h rename to src/kem/ntru/ntruhps4096821/avx2/owcpa.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/pack3.c b/src/kem/ntru/ntruhps4096821/avx2/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/pack3.c rename to src/kem/ntru/ntruhps4096821/avx2/pack3.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/packq.c b/src/kem/ntru/ntruhps4096821/avx2/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/packq.c rename to src/kem/ntru/ntruhps4096821/avx2/packq.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/params.h b/src/kem/ntru/ntruhps4096821/avx2/params.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/params.h rename to src/kem/ntru/ntruhps4096821/avx2/params.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly.c b/src/kem/ntru/ntruhps4096821/avx2/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly.c rename to src/kem/ntru/ntruhps4096821/avx2/poly.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly.h b/src/kem/ntru/ntruhps4096821/avx2/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly.h rename to src/kem/ntru/ntruhps4096821/avx2/poly.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_lift.c b/src/kem/ntru/ntruhps4096821/avx2/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_lift.c rename to src/kem/ntru/ntruhps4096821/avx2/poly_lift.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_mod_3_Phi_n.s b/src/kem/ntru/ntruhps4096821/avx2/poly_mod_3_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_mod_3_Phi_n.s rename to src/kem/ntru/ntruhps4096821/avx2/poly_mod_3_Phi_n.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_mod_q_Phi_n.s b/src/kem/ntru/ntruhps4096821/avx2/poly_mod_q_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_mod_q_Phi_n.s rename to src/kem/ntru/ntruhps4096821/avx2/poly_mod_q_Phi_n.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_r2_inv.c b/src/kem/ntru/ntruhps4096821/avx2/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_r2_inv.c rename to src/kem/ntru/ntruhps4096821/avx2/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_r2_inv.h b/src/kem/ntru/ntruhps4096821/avx2/poly_r2_inv.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_r2_inv.h rename to src/kem/ntru/ntruhps4096821/avx2/poly_r2_inv.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_r2_mul.s b/src/kem/ntru/ntruhps4096821/avx2/poly_r2_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_r2_mul.s rename to src/kem/ntru/ntruhps4096821/avx2/poly_r2_mul.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_rq_mul.s b/src/kem/ntru/ntruhps4096821/avx2/poly_rq_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_rq_mul.s rename to src/kem/ntru/ntruhps4096821/avx2/poly_rq_mul.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_rq_to_s3.s b/src/kem/ntru/ntruhps4096821/avx2/poly_rq_to_s3.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_rq_to_s3.s rename to src/kem/ntru/ntruhps4096821/avx2/poly_rq_to_s3.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/poly_s3_inv.c b/src/kem/ntru/ntruhps4096821/avx2/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/poly_s3_inv.c rename to src/kem/ntru/ntruhps4096821/avx2/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/sample.c b/src/kem/ntru/ntruhps4096821/avx2/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/sample.c rename to src/kem/ntru/ntruhps4096821/avx2/sample.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/sample.h b/src/kem/ntru/ntruhps4096821/avx2/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/sample.h rename to src/kem/ntru/ntruhps4096821/avx2/sample.h diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/sample_iid.c b/src/kem/ntru/ntruhps4096821/avx2/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/sample_iid.c rename to src/kem/ntru/ntruhps4096821/avx2/sample_iid.c diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_102_821_shufbytes.s b/src/kem/ntru/ntruhps4096821/avx2/square_102_821_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_102_821_shufbytes.s rename to src/kem/ntru/ntruhps4096821/avx2/square_102_821_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_12_821_shufbytes.s b/src/kem/ntru/ntruhps4096821/avx2/square_12_821_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_12_821_shufbytes.s rename to src/kem/ntru/ntruhps4096821/avx2/square_12_821_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_1_821_patience.s b/src/kem/ntru/ntruhps4096821/avx2/square_1_821_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_1_821_patience.s rename to src/kem/ntru/ntruhps4096821/avx2/square_1_821_patience.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_204_821_shufbytes.s b/src/kem/ntru/ntruhps4096821/avx2/square_204_821_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_204_821_shufbytes.s rename to src/kem/ntru/ntruhps4096821/avx2/square_204_821_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_24_821_shufbytes.s b/src/kem/ntru/ntruhps4096821/avx2/square_24_821_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_24_821_shufbytes.s rename to src/kem/ntru/ntruhps4096821/avx2/square_24_821_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_3_821_patience.s b/src/kem/ntru/ntruhps4096821/avx2/square_3_821_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_3_821_patience.s rename to src/kem/ntru/ntruhps4096821/avx2/square_3_821_patience.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_408_821_shufbytes.s b/src/kem/ntru/ntruhps4096821/avx2/square_408_821_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_408_821_shufbytes.s rename to src/kem/ntru/ntruhps4096821/avx2/square_408_821_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_51_821_shufbytes.s b/src/kem/ntru/ntruhps4096821/avx2/square_51_821_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_51_821_shufbytes.s rename to src/kem/ntru/ntruhps4096821/avx2/square_51_821_shufbytes.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/square_6_821_patience.s b/src/kem/ntru/ntruhps4096821/avx2/square_6_821_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/square_6_821_patience.s rename to src/kem/ntru/ntruhps4096821/avx2/square_6_821_patience.s diff --git a/crypto_kem/ntru/ntruhps4096821/avx2/vec32_sample_iid.s b/src/kem/ntru/ntruhps4096821/avx2/vec32_sample_iid.s similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/avx2/vec32_sample_iid.s rename to src/kem/ntru/ntruhps4096821/avx2/vec32_sample_iid.s diff --git a/src/kem/ntru/ntruhps4096821/clean/CMakeLists.txt b/src/kem/ntru/ntruhps4096821/clean/CMakeLists.txt new file mode 100644 index 00000000..2f503cf4 --- /dev/null +++ b/src/kem/ntru/ntruhps4096821/clean/CMakeLists.txt @@ -0,0 +1,20 @@ +set( + SRC_CLEAN_NTRUHPS4096821 + cmov.c + crypto_sort_int32.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod.c + poly_r2_inv.c + poly_rq_mul.c + poly_s3_inv.c + sample.c + sample_iid.c +) + +define_kem_alg(ntruhps4096821_clean + PQCLEAN_NTRUHPS4096821_CLEAN "${SRC_CLEAN_NTRUHPS4096821}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhps4096821/clean/api.h b/src/kem/ntru/ntruhps4096821/clean/api.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/api.h rename to src/kem/ntru/ntruhps4096821/clean/api.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/cmov.c b/src/kem/ntru/ntruhps4096821/clean/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/cmov.c rename to src/kem/ntru/ntruhps4096821/clean/cmov.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/cmov.h b/src/kem/ntru/ntruhps4096821/clean/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/cmov.h rename to src/kem/ntru/ntruhps4096821/clean/cmov.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/crypto_sort_int32.c b/src/kem/ntru/ntruhps4096821/clean/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/crypto_sort_int32.c rename to src/kem/ntru/ntruhps4096821/clean/crypto_sort_int32.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/crypto_sort_int32.h b/src/kem/ntru/ntruhps4096821/clean/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/crypto_sort_int32.h rename to src/kem/ntru/ntruhps4096821/clean/crypto_sort_int32.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/kem.c b/src/kem/ntru/ntruhps4096821/clean/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/kem.c rename to src/kem/ntru/ntruhps4096821/clean/kem.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/owcpa.c b/src/kem/ntru/ntruhps4096821/clean/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/owcpa.c rename to src/kem/ntru/ntruhps4096821/clean/owcpa.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/owcpa.h b/src/kem/ntru/ntruhps4096821/clean/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/owcpa.h rename to src/kem/ntru/ntruhps4096821/clean/owcpa.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/pack3.c b/src/kem/ntru/ntruhps4096821/clean/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/pack3.c rename to src/kem/ntru/ntruhps4096821/clean/pack3.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/packq.c b/src/kem/ntru/ntruhps4096821/clean/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/packq.c rename to src/kem/ntru/ntruhps4096821/clean/packq.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/params.h b/src/kem/ntru/ntruhps4096821/clean/params.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/params.h rename to src/kem/ntru/ntruhps4096821/clean/params.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly.c b/src/kem/ntru/ntruhps4096821/clean/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly.c rename to src/kem/ntru/ntruhps4096821/clean/poly.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly.h b/src/kem/ntru/ntruhps4096821/clean/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly.h rename to src/kem/ntru/ntruhps4096821/clean/poly.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly_lift.c b/src/kem/ntru/ntruhps4096821/clean/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly_lift.c rename to src/kem/ntru/ntruhps4096821/clean/poly_lift.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly_mod.c b/src/kem/ntru/ntruhps4096821/clean/poly_mod.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly_mod.c rename to src/kem/ntru/ntruhps4096821/clean/poly_mod.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly_r2_inv.c b/src/kem/ntru/ntruhps4096821/clean/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly_r2_inv.c rename to src/kem/ntru/ntruhps4096821/clean/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly_rq_mul.c b/src/kem/ntru/ntruhps4096821/clean/poly_rq_mul.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly_rq_mul.c rename to src/kem/ntru/ntruhps4096821/clean/poly_rq_mul.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/poly_s3_inv.c b/src/kem/ntru/ntruhps4096821/clean/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/poly_s3_inv.c rename to src/kem/ntru/ntruhps4096821/clean/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/sample.c b/src/kem/ntru/ntruhps4096821/clean/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/sample.c rename to src/kem/ntru/ntruhps4096821/clean/sample.c diff --git a/crypto_kem/ntru/ntruhps4096821/clean/sample.h b/src/kem/ntru/ntruhps4096821/clean/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/sample.h rename to src/kem/ntru/ntruhps4096821/clean/sample.h diff --git a/crypto_kem/ntru/ntruhps4096821/clean/sample_iid.c b/src/kem/ntru/ntruhps4096821/clean/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhps4096821/clean/sample_iid.c rename to src/kem/ntru/ntruhps4096821/clean/sample_iid.c diff --git a/src/kem/ntru/ntruhrss701/avx2/CMakeLists.txt b/src/kem/ntru/ntruhrss701/avx2/CMakeLists.txt new file mode 100644 index 00000000..7592c74d --- /dev/null +++ b/src/kem/ntru/ntruhrss701/avx2/CMakeLists.txt @@ -0,0 +1,33 @@ +set( + SRC_AVX2_NTRUHRSS701 + cmov.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.s + poly_mod_3_Phi_n.s + poly_mod_q_Phi_n.s + poly_r2_inv.c + poly_r2_mul.s + poly_rq_mul.s + poly_rq_to_s3.s + poly_s3_inv.c + sample.c + sample_iid.c + square_12_701_shufbytes.s + square_15_701_shufbytes.s + square_168_701_shufbytes.s + square_1_701_patience.s + square_27_701_shufbytes.s + square_336_701_shufbytes.s + square_3_701_patience.s + square_42_701_shufbytes.s + square_6_701_patience.s + square_84_701_shufbytes.s + vec32_sample_iid.s +) + +define_kem_alg(ntruhrss701_avx2 + PQCLEAN_NTRUHRSS701_AVX2 "${SRC_AVX2_NTRUHRSS701}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhrss701/avx2/api.h b/src/kem/ntru/ntruhrss701/avx2/api.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/api.h rename to src/kem/ntru/ntruhrss701/avx2/api.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/cmov.c b/src/kem/ntru/ntruhrss701/avx2/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/cmov.c rename to src/kem/ntru/ntruhrss701/avx2/cmov.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/cmov.h b/src/kem/ntru/ntruhrss701/avx2/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/cmov.h rename to src/kem/ntru/ntruhrss701/avx2/cmov.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/kem.c b/src/kem/ntru/ntruhrss701/avx2/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/kem.c rename to src/kem/ntru/ntruhrss701/avx2/kem.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/owcpa.c b/src/kem/ntru/ntruhrss701/avx2/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/owcpa.c rename to src/kem/ntru/ntruhrss701/avx2/owcpa.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/owcpa.h b/src/kem/ntru/ntruhrss701/avx2/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/owcpa.h rename to src/kem/ntru/ntruhrss701/avx2/owcpa.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/pack3.c b/src/kem/ntru/ntruhrss701/avx2/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/pack3.c rename to src/kem/ntru/ntruhrss701/avx2/pack3.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/packq.c b/src/kem/ntru/ntruhrss701/avx2/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/packq.c rename to src/kem/ntru/ntruhrss701/avx2/packq.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/params.h b/src/kem/ntru/ntruhrss701/avx2/params.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/params.h rename to src/kem/ntru/ntruhrss701/avx2/params.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly.c b/src/kem/ntru/ntruhrss701/avx2/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly.c rename to src/kem/ntru/ntruhrss701/avx2/poly.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly.h b/src/kem/ntru/ntruhrss701/avx2/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly.h rename to src/kem/ntru/ntruhrss701/avx2/poly.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_lift.s b/src/kem/ntru/ntruhrss701/avx2/poly_lift.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_lift.s rename to src/kem/ntru/ntruhrss701/avx2/poly_lift.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_mod_3_Phi_n.s b/src/kem/ntru/ntruhrss701/avx2/poly_mod_3_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_mod_3_Phi_n.s rename to src/kem/ntru/ntruhrss701/avx2/poly_mod_3_Phi_n.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_mod_q_Phi_n.s b/src/kem/ntru/ntruhrss701/avx2/poly_mod_q_Phi_n.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_mod_q_Phi_n.s rename to src/kem/ntru/ntruhrss701/avx2/poly_mod_q_Phi_n.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_r2_inv.c b/src/kem/ntru/ntruhrss701/avx2/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_r2_inv.c rename to src/kem/ntru/ntruhrss701/avx2/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_r2_inv.h b/src/kem/ntru/ntruhrss701/avx2/poly_r2_inv.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_r2_inv.h rename to src/kem/ntru/ntruhrss701/avx2/poly_r2_inv.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_r2_mul.s b/src/kem/ntru/ntruhrss701/avx2/poly_r2_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_r2_mul.s rename to src/kem/ntru/ntruhrss701/avx2/poly_r2_mul.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_rq_mul.s b/src/kem/ntru/ntruhrss701/avx2/poly_rq_mul.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_rq_mul.s rename to src/kem/ntru/ntruhrss701/avx2/poly_rq_mul.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_rq_to_s3.s b/src/kem/ntru/ntruhrss701/avx2/poly_rq_to_s3.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_rq_to_s3.s rename to src/kem/ntru/ntruhrss701/avx2/poly_rq_to_s3.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/poly_s3_inv.c b/src/kem/ntru/ntruhrss701/avx2/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/poly_s3_inv.c rename to src/kem/ntru/ntruhrss701/avx2/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/sample.c b/src/kem/ntru/ntruhrss701/avx2/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/sample.c rename to src/kem/ntru/ntruhrss701/avx2/sample.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/sample.h b/src/kem/ntru/ntruhrss701/avx2/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/sample.h rename to src/kem/ntru/ntruhrss701/avx2/sample.h diff --git a/crypto_kem/ntru/ntruhrss701/avx2/sample_iid.c b/src/kem/ntru/ntruhrss701/avx2/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/sample_iid.c rename to src/kem/ntru/ntruhrss701/avx2/sample_iid.c diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_12_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_12_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_12_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_12_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_15_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_15_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_15_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_15_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_168_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_168_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_168_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_168_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_1_701_patience.s b/src/kem/ntru/ntruhrss701/avx2/square_1_701_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_1_701_patience.s rename to src/kem/ntru/ntruhrss701/avx2/square_1_701_patience.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_27_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_27_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_27_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_27_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_336_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_336_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_336_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_336_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_3_701_patience.s b/src/kem/ntru/ntruhrss701/avx2/square_3_701_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_3_701_patience.s rename to src/kem/ntru/ntruhrss701/avx2/square_3_701_patience.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_42_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_42_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_42_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_42_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_6_701_patience.s b/src/kem/ntru/ntruhrss701/avx2/square_6_701_patience.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_6_701_patience.s rename to src/kem/ntru/ntruhrss701/avx2/square_6_701_patience.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/square_84_701_shufbytes.s b/src/kem/ntru/ntruhrss701/avx2/square_84_701_shufbytes.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/square_84_701_shufbytes.s rename to src/kem/ntru/ntruhrss701/avx2/square_84_701_shufbytes.s diff --git a/crypto_kem/ntru/ntruhrss701/avx2/vec32_sample_iid.s b/src/kem/ntru/ntruhrss701/avx2/vec32_sample_iid.s similarity index 100% rename from crypto_kem/ntru/ntruhrss701/avx2/vec32_sample_iid.s rename to src/kem/ntru/ntruhrss701/avx2/vec32_sample_iid.s diff --git a/src/kem/ntru/ntruhrss701/clean/CMakeLists.txt b/src/kem/ntru/ntruhrss701/clean/CMakeLists.txt new file mode 100644 index 00000000..4de2e7bc --- /dev/null +++ b/src/kem/ntru/ntruhrss701/clean/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_CLEAN_NTRUHRSS701 + cmov.c + kem.c + owcpa.c + pack3.c + packq.c + poly.c + poly_lift.c + poly_mod.c + poly_r2_inv.c + poly_rq_mul.c + poly_s3_inv.c + sample.c + sample_iid.c +) + +define_kem_alg(ntruhrss701_clean + PQCLEAN_NTRUHRSS701_CLEAN "${SRC_CLEAN_NTRUHRSS701}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru/ntruhrss701/clean/api.h b/src/kem/ntru/ntruhrss701/clean/api.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/api.h rename to src/kem/ntru/ntruhrss701/clean/api.h diff --git a/crypto_kem/ntru/ntruhrss701/clean/cmov.c b/src/kem/ntru/ntruhrss701/clean/cmov.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/cmov.c rename to src/kem/ntru/ntruhrss701/clean/cmov.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/cmov.h b/src/kem/ntru/ntruhrss701/clean/cmov.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/cmov.h rename to src/kem/ntru/ntruhrss701/clean/cmov.h diff --git a/crypto_kem/ntru/ntruhrss701/clean/kem.c b/src/kem/ntru/ntruhrss701/clean/kem.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/kem.c rename to src/kem/ntru/ntruhrss701/clean/kem.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/owcpa.c b/src/kem/ntru/ntruhrss701/clean/owcpa.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/owcpa.c rename to src/kem/ntru/ntruhrss701/clean/owcpa.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/owcpa.h b/src/kem/ntru/ntruhrss701/clean/owcpa.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/owcpa.h rename to src/kem/ntru/ntruhrss701/clean/owcpa.h diff --git a/crypto_kem/ntru/ntruhrss701/clean/pack3.c b/src/kem/ntru/ntruhrss701/clean/pack3.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/pack3.c rename to src/kem/ntru/ntruhrss701/clean/pack3.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/packq.c b/src/kem/ntru/ntruhrss701/clean/packq.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/packq.c rename to src/kem/ntru/ntruhrss701/clean/packq.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/params.h b/src/kem/ntru/ntruhrss701/clean/params.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/params.h rename to src/kem/ntru/ntruhrss701/clean/params.h diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly.c b/src/kem/ntru/ntruhrss701/clean/poly.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly.c rename to src/kem/ntru/ntruhrss701/clean/poly.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly.h b/src/kem/ntru/ntruhrss701/clean/poly.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly.h rename to src/kem/ntru/ntruhrss701/clean/poly.h diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly_lift.c b/src/kem/ntru/ntruhrss701/clean/poly_lift.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly_lift.c rename to src/kem/ntru/ntruhrss701/clean/poly_lift.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly_mod.c b/src/kem/ntru/ntruhrss701/clean/poly_mod.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly_mod.c rename to src/kem/ntru/ntruhrss701/clean/poly_mod.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly_r2_inv.c b/src/kem/ntru/ntruhrss701/clean/poly_r2_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly_r2_inv.c rename to src/kem/ntru/ntruhrss701/clean/poly_r2_inv.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly_rq_mul.c b/src/kem/ntru/ntruhrss701/clean/poly_rq_mul.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly_rq_mul.c rename to src/kem/ntru/ntruhrss701/clean/poly_rq_mul.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/poly_s3_inv.c b/src/kem/ntru/ntruhrss701/clean/poly_s3_inv.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/poly_s3_inv.c rename to src/kem/ntru/ntruhrss701/clean/poly_s3_inv.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/sample.c b/src/kem/ntru/ntruhrss701/clean/sample.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/sample.c rename to src/kem/ntru/ntruhrss701/clean/sample.c diff --git a/crypto_kem/ntru/ntruhrss701/clean/sample.h b/src/kem/ntru/ntruhrss701/clean/sample.h similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/sample.h rename to src/kem/ntru/ntruhrss701/clean/sample.h diff --git a/crypto_kem/ntru/ntruhrss701/clean/sample_iid.c b/src/kem/ntru/ntruhrss701/clean/sample_iid.c similarity index 100% rename from crypto_kem/ntru/ntruhrss701/clean/sample_iid.c rename to src/kem/ntru/ntruhrss701/clean/sample_iid.c diff --git a/src/kem/ntru_prime/ntrulpr653/avx2/CMakeLists.txt b/src/kem/ntru_prime/ntrulpr653/avx2/CMakeLists.txt new file mode 100644 index 00000000..3acc5b97 --- /dev/null +++ b/src/kem/ntru_prime/ntrulpr653/avx2/CMakeLists.txt @@ -0,0 +1,25 @@ +set( + SRC_AVX2_NTRULPR653 + crypto_core_multsntrup653.c + crypto_core_multsntrup653_ntt.c + crypto_decode_256x16.c + crypto_decode_256x2.c + crypto_decode_653x1541.c + crypto_decode_653x3.c + crypto_decode_653xint16.c + crypto_decode_653xint32.c + crypto_encode_256x16.c + crypto_encode_256x2.c + crypto_encode_653x1541.c + crypto_encode_653x1541round.c + crypto_encode_653x3.c + crypto_encode_653xint16.c + crypto_sort_int32.c + crypto_sort_uint32.c + crypto_stream_aes256ctr.c + crypto_verify_1025.c + kem.c +) + +define_kem_alg(ntrulpr653_avx2 + PQCLEAN_NTRULPR653_AVX2 "${SRC_AVX2_NTRULPR653}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/api.h b/src/kem/ntru_prime/ntrulpr653/avx2/api.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/api.h rename to src/kem/ntru_prime/ntrulpr653/avx2/api.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_core_multsntrup653_ntt.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x1541.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_decode_653xint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x1541round.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_encode_653xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_int32.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_sort_uint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_stream_aes256ctr.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.c b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.c rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.h b/src/kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.h rename to src/kem/ntru_prime/ntrulpr653/avx2/crypto_verify_1025.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/kem.c b/src/kem/ntru_prime/ntrulpr653/avx2/kem.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/kem.c rename to src/kem/ntru_prime/ntrulpr653/avx2/kem.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/avx2/params.h b/src/kem/ntru_prime/ntrulpr653/avx2/params.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/avx2/params.h rename to src/kem/ntru_prime/ntrulpr653/avx2/params.h diff --git a/src/kem/ntru_prime/ntrulpr653/clean/CMakeLists.txt b/src/kem/ntru_prime/ntrulpr653/clean/CMakeLists.txt new file mode 100644 index 00000000..7d802991 --- /dev/null +++ b/src/kem/ntru_prime/ntrulpr653/clean/CMakeLists.txt @@ -0,0 +1,24 @@ +set( + SRC_CLEAN_NTRULPR653 + crypto_core_multsntrup653.c + crypto_decode_256x16.c + crypto_decode_256x2.c + crypto_decode_653x1541.c + crypto_decode_653x3.c + crypto_decode_653xint16.c + crypto_decode_653xint32.c + crypto_encode_256x16.c + crypto_encode_256x2.c + crypto_encode_653x1541.c + crypto_encode_653x1541round.c + crypto_encode_653x3.c + crypto_encode_653xint16.c + crypto_sort_int32.c + crypto_sort_uint32.c + crypto_stream_aes256ctr.c + crypto_verify_1025.c + kem.c +) + +define_kem_alg(ntrulpr653_clean + PQCLEAN_NTRULPR653_CLEAN "${SRC_CLEAN_NTRULPR653}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/api.h b/src/kem/ntru_prime/ntrulpr653/clean/api.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/api.h rename to src/kem/ntru_prime/ntrulpr653/clean/api.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_core_multsntrup653.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x1541.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_decode_653xint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x1541round.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_encode_653xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_int32.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_sort_uint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_stream_aes256ctr.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.c b/src/kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.c rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.h b/src/kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.h rename to src/kem/ntru_prime/ntrulpr653/clean/crypto_verify_1025.h diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/kem.c b/src/kem/ntru_prime/ntrulpr653/clean/kem.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/kem.c rename to src/kem/ntru_prime/ntrulpr653/clean/kem.c diff --git a/crypto_kem/ntru_prime/ntrulpr653/clean/params.h b/src/kem/ntru_prime/ntrulpr653/clean/params.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr653/clean/params.h rename to src/kem/ntru_prime/ntrulpr653/clean/params.h diff --git a/src/kem/ntru_prime/ntrulpr761/avx2/CMakeLists.txt b/src/kem/ntru_prime/ntrulpr761/avx2/CMakeLists.txt new file mode 100644 index 00000000..71877542 --- /dev/null +++ b/src/kem/ntru_prime/ntrulpr761/avx2/CMakeLists.txt @@ -0,0 +1,25 @@ +set( + SRC_AVX2_NTRULPR761 + crypto_core_multsntrup761.c + crypto_core_multsntrup761_ntt.c + crypto_decode_256x16.c + crypto_decode_256x2.c + crypto_decode_761x1531.c + crypto_decode_761x3.c + crypto_decode_761xint16.c + crypto_decode_761xint32.c + crypto_encode_256x16.c + crypto_encode_256x2.c + crypto_encode_761x1531.c + crypto_encode_761x1531round.c + crypto_encode_761x3.c + crypto_encode_761xint16.c + crypto_sort_int32.c + crypto_sort_uint32.c + crypto_stream_aes256ctr.c + crypto_verify_1167.c + kem.c +) + +define_kem_alg(ntrulpr761_avx2 + PQCLEAN_NTRULPR761_AVX2 "${SRC_AVX2_NTRULPR761}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/api.h b/src/kem/ntru_prime/ntrulpr761/avx2/api.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/api.h rename to src/kem/ntru_prime/ntrulpr761/avx2/api.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_core_multsntrup761_ntt.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x1531.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_decode_761xint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x1531round.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_encode_761xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_int32.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_sort_uint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_stream_aes256ctr.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.c b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.c rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.h b/src/kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.h rename to src/kem/ntru_prime/ntrulpr761/avx2/crypto_verify_1167.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/kem.c b/src/kem/ntru_prime/ntrulpr761/avx2/kem.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/kem.c rename to src/kem/ntru_prime/ntrulpr761/avx2/kem.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/avx2/params.h b/src/kem/ntru_prime/ntrulpr761/avx2/params.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/avx2/params.h rename to src/kem/ntru_prime/ntrulpr761/avx2/params.h diff --git a/src/kem/ntru_prime/ntrulpr761/clean/CMakeLists.txt b/src/kem/ntru_prime/ntrulpr761/clean/CMakeLists.txt new file mode 100644 index 00000000..e007e33b --- /dev/null +++ b/src/kem/ntru_prime/ntrulpr761/clean/CMakeLists.txt @@ -0,0 +1,24 @@ +set( + SRC_CLEAN_NTRULPR761 + crypto_core_multsntrup761.c + crypto_decode_256x16.c + crypto_decode_256x2.c + crypto_decode_761x1531.c + crypto_decode_761x3.c + crypto_decode_761xint16.c + crypto_decode_761xint32.c + crypto_encode_256x16.c + crypto_encode_256x2.c + crypto_encode_761x1531.c + crypto_encode_761x1531round.c + crypto_encode_761x3.c + crypto_encode_761xint16.c + crypto_sort_int32.c + crypto_sort_uint32.c + crypto_stream_aes256ctr.c + crypto_verify_1167.c + kem.c +) + +define_kem_alg(ntrulpr761_clean + PQCLEAN_NTRULPR761_CLEAN "${SRC_CLEAN_NTRULPR761}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/api.h b/src/kem/ntru_prime/ntrulpr761/clean/api.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/api.h rename to src/kem/ntru_prime/ntrulpr761/clean/api.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_core_multsntrup761.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x1531.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_decode_761xint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x1531round.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_encode_761xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_int32.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_sort_uint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_stream_aes256ctr.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.c b/src/kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.c rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.h b/src/kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.h rename to src/kem/ntru_prime/ntrulpr761/clean/crypto_verify_1167.h diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/kem.c b/src/kem/ntru_prime/ntrulpr761/clean/kem.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/kem.c rename to src/kem/ntru_prime/ntrulpr761/clean/kem.c diff --git a/crypto_kem/ntru_prime/ntrulpr761/clean/params.h b/src/kem/ntru_prime/ntrulpr761/clean/params.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr761/clean/params.h rename to src/kem/ntru_prime/ntrulpr761/clean/params.h diff --git a/src/kem/ntru_prime/ntrulpr857/avx2/CMakeLists.txt b/src/kem/ntru_prime/ntrulpr857/avx2/CMakeLists.txt new file mode 100644 index 00000000..4f3ea238 --- /dev/null +++ b/src/kem/ntru_prime/ntrulpr857/avx2/CMakeLists.txt @@ -0,0 +1,25 @@ +set( + SRC_AVX2_NTRULPR857 + crypto_core_multsntrup857.c + crypto_core_multsntrup857_ntt.c + crypto_decode_256x16.c + crypto_decode_256x2.c + crypto_decode_857x1723.c + crypto_decode_857x3.c + crypto_decode_857xint16.c + crypto_decode_857xint32.c + crypto_encode_256x16.c + crypto_encode_256x2.c + crypto_encode_857x1723.c + crypto_encode_857x1723round.c + crypto_encode_857x3.c + crypto_encode_857xint16.c + crypto_sort_int32.c + crypto_sort_uint32.c + crypto_stream_aes256ctr.c + crypto_verify_1312.c + kem.c +) + +define_kem_alg(ntrulpr857_avx2 + PQCLEAN_NTRULPR857_AVX2 "${SRC_AVX2_NTRULPR857}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/api.h b/src/kem/ntru_prime/ntrulpr857/avx2/api.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/api.h rename to src/kem/ntru_prime/ntrulpr857/avx2/api.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_core_multsntrup857_ntt.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x1723.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_decode_857xint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x1723round.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_encode_857xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_int32.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_sort_uint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_stream_aes256ctr.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.c b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.c rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.h b/src/kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.h rename to src/kem/ntru_prime/ntrulpr857/avx2/crypto_verify_1312.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/kem.c b/src/kem/ntru_prime/ntrulpr857/avx2/kem.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/kem.c rename to src/kem/ntru_prime/ntrulpr857/avx2/kem.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/avx2/params.h b/src/kem/ntru_prime/ntrulpr857/avx2/params.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/avx2/params.h rename to src/kem/ntru_prime/ntrulpr857/avx2/params.h diff --git a/src/kem/ntru_prime/ntrulpr857/clean/CMakeLists.txt b/src/kem/ntru_prime/ntrulpr857/clean/CMakeLists.txt new file mode 100644 index 00000000..81d05bb6 --- /dev/null +++ b/src/kem/ntru_prime/ntrulpr857/clean/CMakeLists.txt @@ -0,0 +1,24 @@ +set( + SRC_CLEAN_NTRULPR857 + crypto_core_multsntrup857.c + crypto_decode_256x16.c + crypto_decode_256x2.c + crypto_decode_857x1723.c + crypto_decode_857x3.c + crypto_decode_857xint16.c + crypto_decode_857xint32.c + crypto_encode_256x16.c + crypto_encode_256x2.c + crypto_encode_857x1723.c + crypto_encode_857x1723round.c + crypto_encode_857x3.c + crypto_encode_857xint16.c + crypto_sort_int32.c + crypto_sort_uint32.c + crypto_stream_aes256ctr.c + crypto_verify_1312.c + kem.c +) + +define_kem_alg(ntrulpr857_clean + PQCLEAN_NTRULPR857_CLEAN "${SRC_CLEAN_NTRULPR857}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/api.h b/src/kem/ntru_prime/ntrulpr857/clean/api.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/api.h rename to src/kem/ntru_prime/ntrulpr857/clean/api.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_core_multsntrup857.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x1723.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_decode_857xint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_256x2.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x1723round.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857x3.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_encode_857xint16.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_int32.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_sort_uint32.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_stream_aes256ctr.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.c b/src/kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.c rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.h b/src/kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.h rename to src/kem/ntru_prime/ntrulpr857/clean/crypto_verify_1312.h diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/kem.c b/src/kem/ntru_prime/ntrulpr857/clean/kem.c similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/kem.c rename to src/kem/ntru_prime/ntrulpr857/clean/kem.c diff --git a/crypto_kem/ntru_prime/ntrulpr857/clean/params.h b/src/kem/ntru_prime/ntrulpr857/clean/params.h similarity index 100% rename from crypto_kem/ntru_prime/ntrulpr857/clean/params.h rename to src/kem/ntru_prime/ntrulpr857/clean/params.h diff --git a/src/kem/saber/firesaber/avx2/CMakeLists.txt b/src/kem/saber/firesaber/avx2/CMakeLists.txt new file mode 100644 index 00000000..6be6885b --- /dev/null +++ b/src/kem/saber/firesaber/avx2/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_AVX2_FIRESABER + cbd.c + kem.c + pack_unpack.c + poly.c + poly_mul.c + SABER_indcpa.c + verify.c) + +define_kem_alg( + firesaber_avx2 + PQCLEAN_FIRESABER_AVX2 "${SRC_AVX2_FIRESABER}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/saber/firesaber/avx2/SABER_indcpa.c b/src/kem/saber/firesaber/avx2/SABER_indcpa.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/SABER_indcpa.c rename to src/kem/saber/firesaber/avx2/SABER_indcpa.c diff --git a/crypto_kem/saber/firesaber/avx2/SABER_indcpa.h b/src/kem/saber/firesaber/avx2/SABER_indcpa.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/SABER_indcpa.h rename to src/kem/saber/firesaber/avx2/SABER_indcpa.h diff --git a/crypto_kem/saber/firesaber/avx2/SABER_params.h b/src/kem/saber/firesaber/avx2/SABER_params.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/SABER_params.h rename to src/kem/saber/firesaber/avx2/SABER_params.h diff --git a/crypto_kem/saber/firesaber/avx2/api.h b/src/kem/saber/firesaber/avx2/api.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/api.h rename to src/kem/saber/firesaber/avx2/api.h diff --git a/crypto_kem/saber/firesaber/avx2/cbd.c b/src/kem/saber/firesaber/avx2/cbd.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/cbd.c rename to src/kem/saber/firesaber/avx2/cbd.c diff --git a/crypto_kem/saber/firesaber/avx2/cbd.h b/src/kem/saber/firesaber/avx2/cbd.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/cbd.h rename to src/kem/saber/firesaber/avx2/cbd.h diff --git a/crypto_kem/saber/firesaber/avx2/kem.c b/src/kem/saber/firesaber/avx2/kem.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/kem.c rename to src/kem/saber/firesaber/avx2/kem.c diff --git a/crypto_kem/saber/firesaber/avx2/pack_unpack.c b/src/kem/saber/firesaber/avx2/pack_unpack.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/pack_unpack.c rename to src/kem/saber/firesaber/avx2/pack_unpack.c diff --git a/crypto_kem/saber/firesaber/avx2/pack_unpack.h b/src/kem/saber/firesaber/avx2/pack_unpack.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/pack_unpack.h rename to src/kem/saber/firesaber/avx2/pack_unpack.h diff --git a/crypto_kem/saber/firesaber/avx2/poly.c b/src/kem/saber/firesaber/avx2/poly.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/poly.c rename to src/kem/saber/firesaber/avx2/poly.c diff --git a/crypto_kem/saber/firesaber/avx2/poly.h b/src/kem/saber/firesaber/avx2/poly.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/poly.h rename to src/kem/saber/firesaber/avx2/poly.h diff --git a/crypto_kem/saber/firesaber/avx2/poly_mul.c b/src/kem/saber/firesaber/avx2/poly_mul.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/poly_mul.c rename to src/kem/saber/firesaber/avx2/poly_mul.c diff --git a/crypto_kem/saber/firesaber/avx2/verify.c b/src/kem/saber/firesaber/avx2/verify.c similarity index 100% rename from crypto_kem/saber/firesaber/avx2/verify.c rename to src/kem/saber/firesaber/avx2/verify.c diff --git a/crypto_kem/saber/firesaber/avx2/verify.h b/src/kem/saber/firesaber/avx2/verify.h similarity index 100% rename from crypto_kem/saber/firesaber/avx2/verify.h rename to src/kem/saber/firesaber/avx2/verify.h diff --git a/src/kem/saber/firesaber/clean/CMakeLists.txt b/src/kem/saber/firesaber/clean/CMakeLists.txt new file mode 100644 index 00000000..bc26cec0 --- /dev/null +++ b/src/kem/saber/firesaber/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_FIRESABER + cbd.c + kem.c + pack_unpack.c + poly.c + poly_mul.c + SABER_indcpa.c + verify.c) + +define_kem_alg( + firesaber_clean + PQCLEAN_FIRESABER_CLEAN "${SRC_CLEAN_FIRESABER}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/saber/firesaber/clean/SABER_indcpa.c b/src/kem/saber/firesaber/clean/SABER_indcpa.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/SABER_indcpa.c rename to src/kem/saber/firesaber/clean/SABER_indcpa.c diff --git a/crypto_kem/saber/firesaber/clean/SABER_indcpa.h b/src/kem/saber/firesaber/clean/SABER_indcpa.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/SABER_indcpa.h rename to src/kem/saber/firesaber/clean/SABER_indcpa.h diff --git a/crypto_kem/saber/firesaber/clean/SABER_params.h b/src/kem/saber/firesaber/clean/SABER_params.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/SABER_params.h rename to src/kem/saber/firesaber/clean/SABER_params.h diff --git a/crypto_kem/saber/firesaber/clean/api.h b/src/kem/saber/firesaber/clean/api.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/api.h rename to src/kem/saber/firesaber/clean/api.h diff --git a/crypto_kem/saber/firesaber/clean/cbd.c b/src/kem/saber/firesaber/clean/cbd.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/cbd.c rename to src/kem/saber/firesaber/clean/cbd.c diff --git a/crypto_kem/saber/firesaber/clean/cbd.h b/src/kem/saber/firesaber/clean/cbd.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/cbd.h rename to src/kem/saber/firesaber/clean/cbd.h diff --git a/crypto_kem/saber/firesaber/clean/kem.c b/src/kem/saber/firesaber/clean/kem.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/kem.c rename to src/kem/saber/firesaber/clean/kem.c diff --git a/crypto_kem/saber/firesaber/clean/pack_unpack.c b/src/kem/saber/firesaber/clean/pack_unpack.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/pack_unpack.c rename to src/kem/saber/firesaber/clean/pack_unpack.c diff --git a/crypto_kem/saber/firesaber/clean/pack_unpack.h b/src/kem/saber/firesaber/clean/pack_unpack.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/pack_unpack.h rename to src/kem/saber/firesaber/clean/pack_unpack.h diff --git a/crypto_kem/saber/firesaber/clean/poly.c b/src/kem/saber/firesaber/clean/poly.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/poly.c rename to src/kem/saber/firesaber/clean/poly.c diff --git a/crypto_kem/saber/firesaber/clean/poly.h b/src/kem/saber/firesaber/clean/poly.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/poly.h rename to src/kem/saber/firesaber/clean/poly.h diff --git a/crypto_kem/saber/firesaber/clean/poly_mul.c b/src/kem/saber/firesaber/clean/poly_mul.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/poly_mul.c rename to src/kem/saber/firesaber/clean/poly_mul.c diff --git a/crypto_kem/saber/firesaber/clean/poly_mul.h b/src/kem/saber/firesaber/clean/poly_mul.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/poly_mul.h rename to src/kem/saber/firesaber/clean/poly_mul.h diff --git a/crypto_kem/saber/firesaber/clean/verify.c b/src/kem/saber/firesaber/clean/verify.c similarity index 100% rename from crypto_kem/saber/firesaber/clean/verify.c rename to src/kem/saber/firesaber/clean/verify.c diff --git a/crypto_kem/saber/firesaber/clean/verify.h b/src/kem/saber/firesaber/clean/verify.h similarity index 100% rename from crypto_kem/saber/firesaber/clean/verify.h rename to src/kem/saber/firesaber/clean/verify.h diff --git a/src/kem/saber/lightsaber/avx2/CMakeLists.txt b/src/kem/saber/lightsaber/avx2/CMakeLists.txt new file mode 100644 index 00000000..fd40c3c5 --- /dev/null +++ b/src/kem/saber/lightsaber/avx2/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_AVX2_LIGHTSABER + cbd.c + kem.c + pack_unpack.c + poly.c + poly_mul.c + SABER_indcpa.c + verify.c) + +define_kem_alg( + lightsaber_avx2 + PQCLEAN_LIGHTSABER_AVX2 "${SRC_AVX2_LIGHTSABER}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/saber/lightsaber/avx2/SABER_indcpa.c b/src/kem/saber/lightsaber/avx2/SABER_indcpa.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/SABER_indcpa.c rename to src/kem/saber/lightsaber/avx2/SABER_indcpa.c diff --git a/crypto_kem/saber/lightsaber/avx2/SABER_indcpa.h b/src/kem/saber/lightsaber/avx2/SABER_indcpa.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/SABER_indcpa.h rename to src/kem/saber/lightsaber/avx2/SABER_indcpa.h diff --git a/crypto_kem/saber/lightsaber/avx2/SABER_params.h b/src/kem/saber/lightsaber/avx2/SABER_params.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/SABER_params.h rename to src/kem/saber/lightsaber/avx2/SABER_params.h diff --git a/crypto_kem/saber/lightsaber/avx2/api.h b/src/kem/saber/lightsaber/avx2/api.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/api.h rename to src/kem/saber/lightsaber/avx2/api.h diff --git a/crypto_kem/saber/lightsaber/avx2/cbd.c b/src/kem/saber/lightsaber/avx2/cbd.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/cbd.c rename to src/kem/saber/lightsaber/avx2/cbd.c diff --git a/crypto_kem/saber/lightsaber/avx2/cbd.h b/src/kem/saber/lightsaber/avx2/cbd.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/cbd.h rename to src/kem/saber/lightsaber/avx2/cbd.h diff --git a/crypto_kem/saber/lightsaber/avx2/kem.c b/src/kem/saber/lightsaber/avx2/kem.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/kem.c rename to src/kem/saber/lightsaber/avx2/kem.c diff --git a/crypto_kem/saber/lightsaber/avx2/pack_unpack.c b/src/kem/saber/lightsaber/avx2/pack_unpack.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/pack_unpack.c rename to src/kem/saber/lightsaber/avx2/pack_unpack.c diff --git a/crypto_kem/saber/lightsaber/avx2/pack_unpack.h b/src/kem/saber/lightsaber/avx2/pack_unpack.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/pack_unpack.h rename to src/kem/saber/lightsaber/avx2/pack_unpack.h diff --git a/crypto_kem/saber/lightsaber/avx2/poly.c b/src/kem/saber/lightsaber/avx2/poly.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/poly.c rename to src/kem/saber/lightsaber/avx2/poly.c diff --git a/crypto_kem/saber/lightsaber/avx2/poly.h b/src/kem/saber/lightsaber/avx2/poly.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/poly.h rename to src/kem/saber/lightsaber/avx2/poly.h diff --git a/crypto_kem/saber/lightsaber/avx2/poly_mul.c b/src/kem/saber/lightsaber/avx2/poly_mul.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/poly_mul.c rename to src/kem/saber/lightsaber/avx2/poly_mul.c diff --git a/crypto_kem/saber/lightsaber/avx2/verify.c b/src/kem/saber/lightsaber/avx2/verify.c similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/verify.c rename to src/kem/saber/lightsaber/avx2/verify.c diff --git a/crypto_kem/saber/lightsaber/avx2/verify.h b/src/kem/saber/lightsaber/avx2/verify.h similarity index 100% rename from crypto_kem/saber/lightsaber/avx2/verify.h rename to src/kem/saber/lightsaber/avx2/verify.h diff --git a/src/kem/saber/lightsaber/clean/CMakeLists.txt b/src/kem/saber/lightsaber/clean/CMakeLists.txt new file mode 100644 index 00000000..897aacc1 --- /dev/null +++ b/src/kem/saber/lightsaber/clean/CMakeLists.txt @@ -0,0 +1,14 @@ + +set( + SRC_CLEAN_LIGHTSABER + cbd.c + kem.c + pack_unpack.c + poly.c + poly_mul.c + SABER_indcpa.c + verify.c) + +define_kem_alg( + lightsaber_clean + PQCLEAN_LIGHTSABER_CLEAN "${SRC_CLEAN_LIGHTSABER}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/saber/lightsaber/clean/SABER_indcpa.c b/src/kem/saber/lightsaber/clean/SABER_indcpa.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/SABER_indcpa.c rename to src/kem/saber/lightsaber/clean/SABER_indcpa.c diff --git a/crypto_kem/saber/lightsaber/clean/SABER_indcpa.h b/src/kem/saber/lightsaber/clean/SABER_indcpa.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/SABER_indcpa.h rename to src/kem/saber/lightsaber/clean/SABER_indcpa.h diff --git a/crypto_kem/saber/lightsaber/clean/SABER_params.h b/src/kem/saber/lightsaber/clean/SABER_params.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/SABER_params.h rename to src/kem/saber/lightsaber/clean/SABER_params.h diff --git a/crypto_kem/saber/lightsaber/clean/api.h b/src/kem/saber/lightsaber/clean/api.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/api.h rename to src/kem/saber/lightsaber/clean/api.h diff --git a/crypto_kem/saber/lightsaber/clean/cbd.c b/src/kem/saber/lightsaber/clean/cbd.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/cbd.c rename to src/kem/saber/lightsaber/clean/cbd.c diff --git a/crypto_kem/saber/lightsaber/clean/cbd.h b/src/kem/saber/lightsaber/clean/cbd.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/cbd.h rename to src/kem/saber/lightsaber/clean/cbd.h diff --git a/crypto_kem/saber/lightsaber/clean/kem.c b/src/kem/saber/lightsaber/clean/kem.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/kem.c rename to src/kem/saber/lightsaber/clean/kem.c diff --git a/crypto_kem/saber/lightsaber/clean/pack_unpack.c b/src/kem/saber/lightsaber/clean/pack_unpack.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/pack_unpack.c rename to src/kem/saber/lightsaber/clean/pack_unpack.c diff --git a/crypto_kem/saber/lightsaber/clean/pack_unpack.h b/src/kem/saber/lightsaber/clean/pack_unpack.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/pack_unpack.h rename to src/kem/saber/lightsaber/clean/pack_unpack.h diff --git a/crypto_kem/saber/lightsaber/clean/poly.c b/src/kem/saber/lightsaber/clean/poly.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/poly.c rename to src/kem/saber/lightsaber/clean/poly.c diff --git a/crypto_kem/saber/lightsaber/clean/poly.h b/src/kem/saber/lightsaber/clean/poly.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/poly.h rename to src/kem/saber/lightsaber/clean/poly.h diff --git a/crypto_kem/saber/lightsaber/clean/poly_mul.c b/src/kem/saber/lightsaber/clean/poly_mul.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/poly_mul.c rename to src/kem/saber/lightsaber/clean/poly_mul.c diff --git a/crypto_kem/saber/lightsaber/clean/poly_mul.h b/src/kem/saber/lightsaber/clean/poly_mul.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/poly_mul.h rename to src/kem/saber/lightsaber/clean/poly_mul.h diff --git a/crypto_kem/saber/lightsaber/clean/verify.c b/src/kem/saber/lightsaber/clean/verify.c similarity index 100% rename from crypto_kem/saber/lightsaber/clean/verify.c rename to src/kem/saber/lightsaber/clean/verify.c diff --git a/crypto_kem/saber/lightsaber/clean/verify.h b/src/kem/saber/lightsaber/clean/verify.h similarity index 100% rename from crypto_kem/saber/lightsaber/clean/verify.h rename to src/kem/saber/lightsaber/clean/verify.h diff --git a/src/kem/saber/saber/avx2/CMakeLists.txt b/src/kem/saber/saber/avx2/CMakeLists.txt new file mode 100644 index 00000000..6ad6825a --- /dev/null +++ b/src/kem/saber/saber/avx2/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_AVX2_SABER + cbd.c + kem.c + pack_unpack.c + poly.c + poly_mul.c + SABER_indcpa.c + verify.c) + +define_kem_alg( + saber_avx2 + PQCLEAN_SABER_AVX2 "${SRC_AVX2_SABER}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/saber/saber/avx2/SABER_indcpa.c b/src/kem/saber/saber/avx2/SABER_indcpa.c similarity index 100% rename from crypto_kem/saber/saber/avx2/SABER_indcpa.c rename to src/kem/saber/saber/avx2/SABER_indcpa.c diff --git a/crypto_kem/saber/saber/avx2/SABER_indcpa.h b/src/kem/saber/saber/avx2/SABER_indcpa.h similarity index 100% rename from crypto_kem/saber/saber/avx2/SABER_indcpa.h rename to src/kem/saber/saber/avx2/SABER_indcpa.h diff --git a/crypto_kem/saber/saber/avx2/SABER_params.h b/src/kem/saber/saber/avx2/SABER_params.h similarity index 100% rename from crypto_kem/saber/saber/avx2/SABER_params.h rename to src/kem/saber/saber/avx2/SABER_params.h diff --git a/crypto_kem/saber/saber/avx2/api.h b/src/kem/saber/saber/avx2/api.h similarity index 100% rename from crypto_kem/saber/saber/avx2/api.h rename to src/kem/saber/saber/avx2/api.h diff --git a/crypto_kem/saber/saber/avx2/cbd.c b/src/kem/saber/saber/avx2/cbd.c similarity index 100% rename from crypto_kem/saber/saber/avx2/cbd.c rename to src/kem/saber/saber/avx2/cbd.c diff --git a/crypto_kem/saber/saber/avx2/cbd.h b/src/kem/saber/saber/avx2/cbd.h similarity index 100% rename from crypto_kem/saber/saber/avx2/cbd.h rename to src/kem/saber/saber/avx2/cbd.h diff --git a/crypto_kem/saber/saber/avx2/kem.c b/src/kem/saber/saber/avx2/kem.c similarity index 100% rename from crypto_kem/saber/saber/avx2/kem.c rename to src/kem/saber/saber/avx2/kem.c diff --git a/crypto_kem/saber/saber/avx2/pack_unpack.c b/src/kem/saber/saber/avx2/pack_unpack.c similarity index 100% rename from crypto_kem/saber/saber/avx2/pack_unpack.c rename to src/kem/saber/saber/avx2/pack_unpack.c diff --git a/crypto_kem/saber/saber/avx2/pack_unpack.h b/src/kem/saber/saber/avx2/pack_unpack.h similarity index 100% rename from crypto_kem/saber/saber/avx2/pack_unpack.h rename to src/kem/saber/saber/avx2/pack_unpack.h diff --git a/crypto_kem/saber/saber/avx2/poly.c b/src/kem/saber/saber/avx2/poly.c similarity index 100% rename from crypto_kem/saber/saber/avx2/poly.c rename to src/kem/saber/saber/avx2/poly.c diff --git a/crypto_kem/saber/saber/avx2/poly.h b/src/kem/saber/saber/avx2/poly.h similarity index 100% rename from crypto_kem/saber/saber/avx2/poly.h rename to src/kem/saber/saber/avx2/poly.h diff --git a/crypto_kem/saber/saber/avx2/poly_mul.c b/src/kem/saber/saber/avx2/poly_mul.c similarity index 100% rename from crypto_kem/saber/saber/avx2/poly_mul.c rename to src/kem/saber/saber/avx2/poly_mul.c diff --git a/crypto_kem/saber/saber/avx2/verify.c b/src/kem/saber/saber/avx2/verify.c similarity index 100% rename from crypto_kem/saber/saber/avx2/verify.c rename to src/kem/saber/saber/avx2/verify.c diff --git a/crypto_kem/saber/saber/avx2/verify.h b/src/kem/saber/saber/avx2/verify.h similarity index 100% rename from crypto_kem/saber/saber/avx2/verify.h rename to src/kem/saber/saber/avx2/verify.h diff --git a/src/kem/saber/saber/clean/CMakeLists.txt b/src/kem/saber/saber/clean/CMakeLists.txt new file mode 100644 index 00000000..7f4bac9f --- /dev/null +++ b/src/kem/saber/saber/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SABER + cbd.c + kem.c + pack_unpack.c + poly.c + poly_mul.c + SABER_indcpa.c + verify.c) + +define_kem_alg( + saber_clean + PQCLEAN_SABER_CLEAN "${SRC_CLEAN_SABER}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_kem/saber/saber/clean/SABER_indcpa.c b/src/kem/saber/saber/clean/SABER_indcpa.c similarity index 100% rename from crypto_kem/saber/saber/clean/SABER_indcpa.c rename to src/kem/saber/saber/clean/SABER_indcpa.c diff --git a/crypto_kem/saber/saber/clean/SABER_indcpa.h b/src/kem/saber/saber/clean/SABER_indcpa.h similarity index 100% rename from crypto_kem/saber/saber/clean/SABER_indcpa.h rename to src/kem/saber/saber/clean/SABER_indcpa.h diff --git a/crypto_kem/saber/saber/clean/SABER_params.h b/src/kem/saber/saber/clean/SABER_params.h similarity index 100% rename from crypto_kem/saber/saber/clean/SABER_params.h rename to src/kem/saber/saber/clean/SABER_params.h diff --git a/crypto_kem/saber/saber/clean/api.h b/src/kem/saber/saber/clean/api.h similarity index 100% rename from crypto_kem/saber/saber/clean/api.h rename to src/kem/saber/saber/clean/api.h diff --git a/crypto_kem/saber/saber/clean/cbd.c b/src/kem/saber/saber/clean/cbd.c similarity index 100% rename from crypto_kem/saber/saber/clean/cbd.c rename to src/kem/saber/saber/clean/cbd.c diff --git a/crypto_kem/saber/saber/clean/cbd.h b/src/kem/saber/saber/clean/cbd.h similarity index 100% rename from crypto_kem/saber/saber/clean/cbd.h rename to src/kem/saber/saber/clean/cbd.h diff --git a/crypto_kem/saber/saber/clean/kem.c b/src/kem/saber/saber/clean/kem.c similarity index 100% rename from crypto_kem/saber/saber/clean/kem.c rename to src/kem/saber/saber/clean/kem.c diff --git a/crypto_kem/saber/saber/clean/pack_unpack.c b/src/kem/saber/saber/clean/pack_unpack.c similarity index 100% rename from crypto_kem/saber/saber/clean/pack_unpack.c rename to src/kem/saber/saber/clean/pack_unpack.c diff --git a/crypto_kem/saber/saber/clean/pack_unpack.h b/src/kem/saber/saber/clean/pack_unpack.h similarity index 100% rename from crypto_kem/saber/saber/clean/pack_unpack.h rename to src/kem/saber/saber/clean/pack_unpack.h diff --git a/crypto_kem/saber/saber/clean/poly.c b/src/kem/saber/saber/clean/poly.c similarity index 100% rename from crypto_kem/saber/saber/clean/poly.c rename to src/kem/saber/saber/clean/poly.c diff --git a/crypto_kem/saber/saber/clean/poly.h b/src/kem/saber/saber/clean/poly.h similarity index 100% rename from crypto_kem/saber/saber/clean/poly.h rename to src/kem/saber/saber/clean/poly.h diff --git a/crypto_kem/saber/saber/clean/poly_mul.c b/src/kem/saber/saber/clean/poly_mul.c similarity index 100% rename from crypto_kem/saber/saber/clean/poly_mul.c rename to src/kem/saber/saber/clean/poly_mul.c diff --git a/crypto_kem/saber/saber/clean/poly_mul.h b/src/kem/saber/saber/clean/poly_mul.h similarity index 100% rename from crypto_kem/saber/saber/clean/poly_mul.h rename to src/kem/saber/saber/clean/poly_mul.h diff --git a/crypto_kem/saber/saber/clean/verify.c b/src/kem/saber/saber/clean/verify.c similarity index 100% rename from crypto_kem/saber/saber/clean/verify.c rename to src/kem/saber/saber/clean/verify.c diff --git a/crypto_kem/saber/saber/clean/verify.h b/src/kem/saber/saber/clean/verify.h similarity index 100% rename from crypto_kem/saber/saber/clean/verify.h rename to src/kem/saber/saber/clean/verify.h diff --git a/src/sign/dilithium/dilithium2/avx2/CMakeLists.txt b/src/sign/dilithium/dilithium2/avx2/CMakeLists.txt new file mode 100644 index 00000000..63b162e8 --- /dev/null +++ b/src/sign/dilithium/dilithium2/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_DILITHIUM2 + consts.c + f1600x4.S + fips202x4.c + invntt.S + ntt.S + packing.c + pointwise.S + poly.c + polyvec.c + rejsample.c + rounding.c + shuffle.S + sign.c + symmetric-shake.c) + +define_sig_alg(dilithium2_avx2 + PQCLEAN_DILITHIUM2_AVX2 "${SRC_AVX2_DILITHIUM2}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/dilithium/dilithium2/avx2/align.h b/src/sign/dilithium/dilithium2/avx2/align.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/align.h rename to src/sign/dilithium/dilithium2/avx2/align.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/api.h b/src/sign/dilithium/dilithium2/avx2/api.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/api.h rename to src/sign/dilithium/dilithium2/avx2/api.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/cdecl.h b/src/sign/dilithium/dilithium2/avx2/cdecl.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/cdecl.h rename to src/sign/dilithium/dilithium2/avx2/cdecl.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/consts.c b/src/sign/dilithium/dilithium2/avx2/consts.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/consts.c rename to src/sign/dilithium/dilithium2/avx2/consts.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/consts.h b/src/sign/dilithium/dilithium2/avx2/consts.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/consts.h rename to src/sign/dilithium/dilithium2/avx2/consts.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/f1600x4.S b/src/sign/dilithium/dilithium2/avx2/f1600x4.S similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/f1600x4.S rename to src/sign/dilithium/dilithium2/avx2/f1600x4.S diff --git a/crypto_sign/dilithium/dilithium2/avx2/fips202x4.c b/src/sign/dilithium/dilithium2/avx2/fips202x4.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/fips202x4.c rename to src/sign/dilithium/dilithium2/avx2/fips202x4.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/fips202x4.h b/src/sign/dilithium/dilithium2/avx2/fips202x4.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/fips202x4.h rename to src/sign/dilithium/dilithium2/avx2/fips202x4.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/invntt.S b/src/sign/dilithium/dilithium2/avx2/invntt.S similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/invntt.S rename to src/sign/dilithium/dilithium2/avx2/invntt.S diff --git a/crypto_sign/dilithium/dilithium2/avx2/ntt.S b/src/sign/dilithium/dilithium2/avx2/ntt.S similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/ntt.S rename to src/sign/dilithium/dilithium2/avx2/ntt.S diff --git a/crypto_sign/dilithium/dilithium2/avx2/ntt.h b/src/sign/dilithium/dilithium2/avx2/ntt.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/ntt.h rename to src/sign/dilithium/dilithium2/avx2/ntt.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/packing.c b/src/sign/dilithium/dilithium2/avx2/packing.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/packing.c rename to src/sign/dilithium/dilithium2/avx2/packing.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/packing.h b/src/sign/dilithium/dilithium2/avx2/packing.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/packing.h rename to src/sign/dilithium/dilithium2/avx2/packing.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/params.h b/src/sign/dilithium/dilithium2/avx2/params.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/params.h rename to src/sign/dilithium/dilithium2/avx2/params.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/pointwise.S b/src/sign/dilithium/dilithium2/avx2/pointwise.S similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/pointwise.S rename to src/sign/dilithium/dilithium2/avx2/pointwise.S diff --git a/crypto_sign/dilithium/dilithium2/avx2/poly.c b/src/sign/dilithium/dilithium2/avx2/poly.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/poly.c rename to src/sign/dilithium/dilithium2/avx2/poly.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/poly.h b/src/sign/dilithium/dilithium2/avx2/poly.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/poly.h rename to src/sign/dilithium/dilithium2/avx2/poly.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/polyvec.c b/src/sign/dilithium/dilithium2/avx2/polyvec.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/polyvec.c rename to src/sign/dilithium/dilithium2/avx2/polyvec.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/polyvec.h b/src/sign/dilithium/dilithium2/avx2/polyvec.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/polyvec.h rename to src/sign/dilithium/dilithium2/avx2/polyvec.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/rejsample.c b/src/sign/dilithium/dilithium2/avx2/rejsample.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/rejsample.c rename to src/sign/dilithium/dilithium2/avx2/rejsample.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/rejsample.h b/src/sign/dilithium/dilithium2/avx2/rejsample.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/rejsample.h rename to src/sign/dilithium/dilithium2/avx2/rejsample.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/rounding.c b/src/sign/dilithium/dilithium2/avx2/rounding.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/rounding.c rename to src/sign/dilithium/dilithium2/avx2/rounding.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/rounding.h b/src/sign/dilithium/dilithium2/avx2/rounding.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/rounding.h rename to src/sign/dilithium/dilithium2/avx2/rounding.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/shuffle.S b/src/sign/dilithium/dilithium2/avx2/shuffle.S similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/shuffle.S rename to src/sign/dilithium/dilithium2/avx2/shuffle.S diff --git a/crypto_sign/dilithium/dilithium2/avx2/shuffle.inc b/src/sign/dilithium/dilithium2/avx2/shuffle.inc similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/shuffle.inc rename to src/sign/dilithium/dilithium2/avx2/shuffle.inc diff --git a/crypto_sign/dilithium/dilithium2/avx2/sign.c b/src/sign/dilithium/dilithium2/avx2/sign.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/sign.c rename to src/sign/dilithium/dilithium2/avx2/sign.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/sign.h b/src/sign/dilithium/dilithium2/avx2/sign.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/sign.h rename to src/sign/dilithium/dilithium2/avx2/sign.h diff --git a/crypto_sign/dilithium/dilithium2/avx2/symmetric-shake.c b/src/sign/dilithium/dilithium2/avx2/symmetric-shake.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/symmetric-shake.c rename to src/sign/dilithium/dilithium2/avx2/symmetric-shake.c diff --git a/crypto_sign/dilithium/dilithium2/avx2/symmetric.h b/src/sign/dilithium/dilithium2/avx2/symmetric.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/avx2/symmetric.h rename to src/sign/dilithium/dilithium2/avx2/symmetric.h diff --git a/src/sign/dilithium/dilithium2/clean/CMakeLists.txt b/src/sign/dilithium/dilithium2/clean/CMakeLists.txt new file mode 100644 index 00000000..d6849160 --- /dev/null +++ b/src/sign/dilithium/dilithium2/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_DILITHIUM2 + ntt.c + packing.c + poly.c + polyvec.c + reduce.c + rounding.c + sign.c + symmetric-shake.c +) + +define_sig_alg(dilithium2_clean + PQCLEAN_DILITHIUM2_CLEAN "${SRC_CLEAN_DILITHIUM2}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/dilithium/dilithium2/clean/api.h b/src/sign/dilithium/dilithium2/clean/api.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/api.h rename to src/sign/dilithium/dilithium2/clean/api.h diff --git a/crypto_sign/dilithium/dilithium2/clean/ntt.c b/src/sign/dilithium/dilithium2/clean/ntt.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/ntt.c rename to src/sign/dilithium/dilithium2/clean/ntt.c diff --git a/crypto_sign/dilithium/dilithium2/clean/ntt.h b/src/sign/dilithium/dilithium2/clean/ntt.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/ntt.h rename to src/sign/dilithium/dilithium2/clean/ntt.h diff --git a/crypto_sign/dilithium/dilithium2/clean/packing.c b/src/sign/dilithium/dilithium2/clean/packing.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/packing.c rename to src/sign/dilithium/dilithium2/clean/packing.c diff --git a/crypto_sign/dilithium/dilithium2/clean/packing.h b/src/sign/dilithium/dilithium2/clean/packing.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/packing.h rename to src/sign/dilithium/dilithium2/clean/packing.h diff --git a/crypto_sign/dilithium/dilithium2/clean/params.h b/src/sign/dilithium/dilithium2/clean/params.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/params.h rename to src/sign/dilithium/dilithium2/clean/params.h diff --git a/crypto_sign/dilithium/dilithium2/clean/poly.c b/src/sign/dilithium/dilithium2/clean/poly.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/poly.c rename to src/sign/dilithium/dilithium2/clean/poly.c diff --git a/crypto_sign/dilithium/dilithium2/clean/poly.h b/src/sign/dilithium/dilithium2/clean/poly.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/poly.h rename to src/sign/dilithium/dilithium2/clean/poly.h diff --git a/crypto_sign/dilithium/dilithium2/clean/polyvec.c b/src/sign/dilithium/dilithium2/clean/polyvec.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/polyvec.c rename to src/sign/dilithium/dilithium2/clean/polyvec.c diff --git a/crypto_sign/dilithium/dilithium2/clean/polyvec.h b/src/sign/dilithium/dilithium2/clean/polyvec.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/polyvec.h rename to src/sign/dilithium/dilithium2/clean/polyvec.h diff --git a/crypto_sign/dilithium/dilithium2/clean/reduce.c b/src/sign/dilithium/dilithium2/clean/reduce.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/reduce.c rename to src/sign/dilithium/dilithium2/clean/reduce.c diff --git a/crypto_sign/dilithium/dilithium2/clean/reduce.h b/src/sign/dilithium/dilithium2/clean/reduce.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/reduce.h rename to src/sign/dilithium/dilithium2/clean/reduce.h diff --git a/crypto_sign/dilithium/dilithium2/clean/rounding.c b/src/sign/dilithium/dilithium2/clean/rounding.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/rounding.c rename to src/sign/dilithium/dilithium2/clean/rounding.c diff --git a/crypto_sign/dilithium/dilithium2/clean/rounding.h b/src/sign/dilithium/dilithium2/clean/rounding.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/rounding.h rename to src/sign/dilithium/dilithium2/clean/rounding.h diff --git a/crypto_sign/dilithium/dilithium2/clean/sign.c b/src/sign/dilithium/dilithium2/clean/sign.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/sign.c rename to src/sign/dilithium/dilithium2/clean/sign.c diff --git a/crypto_sign/dilithium/dilithium2/clean/sign.h b/src/sign/dilithium/dilithium2/clean/sign.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/sign.h rename to src/sign/dilithium/dilithium2/clean/sign.h diff --git a/crypto_sign/dilithium/dilithium2/clean/symmetric-shake.c b/src/sign/dilithium/dilithium2/clean/symmetric-shake.c similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/symmetric-shake.c rename to src/sign/dilithium/dilithium2/clean/symmetric-shake.c diff --git a/crypto_sign/dilithium/dilithium2/clean/symmetric.h b/src/sign/dilithium/dilithium2/clean/symmetric.h similarity index 100% rename from crypto_sign/dilithium/dilithium2/clean/symmetric.h rename to src/sign/dilithium/dilithium2/clean/symmetric.h diff --git a/src/sign/dilithium/dilithium3/avx2/CMakeLists.txt b/src/sign/dilithium/dilithium3/avx2/CMakeLists.txt new file mode 100644 index 00000000..f0d262e0 --- /dev/null +++ b/src/sign/dilithium/dilithium3/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_DILITHIUM3 + consts.c + f1600x4.S + fips202x4.c + invntt.S + ntt.S + packing.c + pointwise.S + poly.c + polyvec.c + rejsample.c + rounding.c + shuffle.S + sign.c + symmetric-shake.c) + +define_sig_alg(dilithium3_avx2 + PQCLEAN_DILITHIUM3_AVX2 "${SRC_AVX2_DILITHIUM3}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/dilithium/dilithium3/avx2/align.h b/src/sign/dilithium/dilithium3/avx2/align.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/align.h rename to src/sign/dilithium/dilithium3/avx2/align.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/api.h b/src/sign/dilithium/dilithium3/avx2/api.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/api.h rename to src/sign/dilithium/dilithium3/avx2/api.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/cdecl.h b/src/sign/dilithium/dilithium3/avx2/cdecl.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/cdecl.h rename to src/sign/dilithium/dilithium3/avx2/cdecl.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/consts.c b/src/sign/dilithium/dilithium3/avx2/consts.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/consts.c rename to src/sign/dilithium/dilithium3/avx2/consts.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/consts.h b/src/sign/dilithium/dilithium3/avx2/consts.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/consts.h rename to src/sign/dilithium/dilithium3/avx2/consts.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/f1600x4.S b/src/sign/dilithium/dilithium3/avx2/f1600x4.S similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/f1600x4.S rename to src/sign/dilithium/dilithium3/avx2/f1600x4.S diff --git a/crypto_sign/dilithium/dilithium3/avx2/fips202x4.c b/src/sign/dilithium/dilithium3/avx2/fips202x4.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/fips202x4.c rename to src/sign/dilithium/dilithium3/avx2/fips202x4.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/fips202x4.h b/src/sign/dilithium/dilithium3/avx2/fips202x4.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/fips202x4.h rename to src/sign/dilithium/dilithium3/avx2/fips202x4.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/invntt.S b/src/sign/dilithium/dilithium3/avx2/invntt.S similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/invntt.S rename to src/sign/dilithium/dilithium3/avx2/invntt.S diff --git a/crypto_sign/dilithium/dilithium3/avx2/ntt.S b/src/sign/dilithium/dilithium3/avx2/ntt.S similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/ntt.S rename to src/sign/dilithium/dilithium3/avx2/ntt.S diff --git a/crypto_sign/dilithium/dilithium3/avx2/ntt.h b/src/sign/dilithium/dilithium3/avx2/ntt.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/ntt.h rename to src/sign/dilithium/dilithium3/avx2/ntt.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/packing.c b/src/sign/dilithium/dilithium3/avx2/packing.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/packing.c rename to src/sign/dilithium/dilithium3/avx2/packing.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/packing.h b/src/sign/dilithium/dilithium3/avx2/packing.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/packing.h rename to src/sign/dilithium/dilithium3/avx2/packing.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/params.h b/src/sign/dilithium/dilithium3/avx2/params.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/params.h rename to src/sign/dilithium/dilithium3/avx2/params.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/pointwise.S b/src/sign/dilithium/dilithium3/avx2/pointwise.S similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/pointwise.S rename to src/sign/dilithium/dilithium3/avx2/pointwise.S diff --git a/crypto_sign/dilithium/dilithium3/avx2/poly.c b/src/sign/dilithium/dilithium3/avx2/poly.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/poly.c rename to src/sign/dilithium/dilithium3/avx2/poly.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/poly.h b/src/sign/dilithium/dilithium3/avx2/poly.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/poly.h rename to src/sign/dilithium/dilithium3/avx2/poly.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/polyvec.c b/src/sign/dilithium/dilithium3/avx2/polyvec.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/polyvec.c rename to src/sign/dilithium/dilithium3/avx2/polyvec.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/polyvec.h b/src/sign/dilithium/dilithium3/avx2/polyvec.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/polyvec.h rename to src/sign/dilithium/dilithium3/avx2/polyvec.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/rejsample.c b/src/sign/dilithium/dilithium3/avx2/rejsample.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/rejsample.c rename to src/sign/dilithium/dilithium3/avx2/rejsample.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/rejsample.h b/src/sign/dilithium/dilithium3/avx2/rejsample.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/rejsample.h rename to src/sign/dilithium/dilithium3/avx2/rejsample.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/rounding.c b/src/sign/dilithium/dilithium3/avx2/rounding.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/rounding.c rename to src/sign/dilithium/dilithium3/avx2/rounding.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/rounding.h b/src/sign/dilithium/dilithium3/avx2/rounding.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/rounding.h rename to src/sign/dilithium/dilithium3/avx2/rounding.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/shuffle.S b/src/sign/dilithium/dilithium3/avx2/shuffle.S similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/shuffle.S rename to src/sign/dilithium/dilithium3/avx2/shuffle.S diff --git a/crypto_sign/dilithium/dilithium3/avx2/shuffle.inc b/src/sign/dilithium/dilithium3/avx2/shuffle.inc similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/shuffle.inc rename to src/sign/dilithium/dilithium3/avx2/shuffle.inc diff --git a/crypto_sign/dilithium/dilithium3/avx2/sign.c b/src/sign/dilithium/dilithium3/avx2/sign.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/sign.c rename to src/sign/dilithium/dilithium3/avx2/sign.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/sign.h b/src/sign/dilithium/dilithium3/avx2/sign.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/sign.h rename to src/sign/dilithium/dilithium3/avx2/sign.h diff --git a/crypto_sign/dilithium/dilithium3/avx2/symmetric-shake.c b/src/sign/dilithium/dilithium3/avx2/symmetric-shake.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/symmetric-shake.c rename to src/sign/dilithium/dilithium3/avx2/symmetric-shake.c diff --git a/crypto_sign/dilithium/dilithium3/avx2/symmetric.h b/src/sign/dilithium/dilithium3/avx2/symmetric.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/avx2/symmetric.h rename to src/sign/dilithium/dilithium3/avx2/symmetric.h diff --git a/src/sign/dilithium/dilithium3/clean/CMakeLists.txt b/src/sign/dilithium/dilithium3/clean/CMakeLists.txt new file mode 100644 index 00000000..2e6f8f5e --- /dev/null +++ b/src/sign/dilithium/dilithium3/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_DILITHIUM3 + ntt.c + packing.c + poly.c + polyvec.c + reduce.c + rounding.c + sign.c + symmetric-shake.c +) + +define_sig_alg(dilithium3_clean + PQCLEAN_DILITHIUM3_CLEAN "${SRC_CLEAN_DILITHIUM3}" "${CMAKE_CURRENT_SOURCE_DIR}") + diff --git a/crypto_sign/dilithium/dilithium3/clean/api.h b/src/sign/dilithium/dilithium3/clean/api.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/api.h rename to src/sign/dilithium/dilithium3/clean/api.h diff --git a/crypto_sign/dilithium/dilithium3/clean/ntt.c b/src/sign/dilithium/dilithium3/clean/ntt.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/ntt.c rename to src/sign/dilithium/dilithium3/clean/ntt.c diff --git a/crypto_sign/dilithium/dilithium3/clean/ntt.h b/src/sign/dilithium/dilithium3/clean/ntt.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/ntt.h rename to src/sign/dilithium/dilithium3/clean/ntt.h diff --git a/crypto_sign/dilithium/dilithium3/clean/packing.c b/src/sign/dilithium/dilithium3/clean/packing.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/packing.c rename to src/sign/dilithium/dilithium3/clean/packing.c diff --git a/crypto_sign/dilithium/dilithium3/clean/packing.h b/src/sign/dilithium/dilithium3/clean/packing.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/packing.h rename to src/sign/dilithium/dilithium3/clean/packing.h diff --git a/crypto_sign/dilithium/dilithium3/clean/params.h b/src/sign/dilithium/dilithium3/clean/params.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/params.h rename to src/sign/dilithium/dilithium3/clean/params.h diff --git a/crypto_sign/dilithium/dilithium3/clean/poly.c b/src/sign/dilithium/dilithium3/clean/poly.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/poly.c rename to src/sign/dilithium/dilithium3/clean/poly.c diff --git a/crypto_sign/dilithium/dilithium3/clean/poly.h b/src/sign/dilithium/dilithium3/clean/poly.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/poly.h rename to src/sign/dilithium/dilithium3/clean/poly.h diff --git a/crypto_sign/dilithium/dilithium3/clean/polyvec.c b/src/sign/dilithium/dilithium3/clean/polyvec.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/polyvec.c rename to src/sign/dilithium/dilithium3/clean/polyvec.c diff --git a/crypto_sign/dilithium/dilithium3/clean/polyvec.h b/src/sign/dilithium/dilithium3/clean/polyvec.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/polyvec.h rename to src/sign/dilithium/dilithium3/clean/polyvec.h diff --git a/crypto_sign/dilithium/dilithium3/clean/reduce.c b/src/sign/dilithium/dilithium3/clean/reduce.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/reduce.c rename to src/sign/dilithium/dilithium3/clean/reduce.c diff --git a/crypto_sign/dilithium/dilithium3/clean/reduce.h b/src/sign/dilithium/dilithium3/clean/reduce.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/reduce.h rename to src/sign/dilithium/dilithium3/clean/reduce.h diff --git a/crypto_sign/dilithium/dilithium3/clean/rounding.c b/src/sign/dilithium/dilithium3/clean/rounding.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/rounding.c rename to src/sign/dilithium/dilithium3/clean/rounding.c diff --git a/crypto_sign/dilithium/dilithium3/clean/rounding.h b/src/sign/dilithium/dilithium3/clean/rounding.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/rounding.h rename to src/sign/dilithium/dilithium3/clean/rounding.h diff --git a/crypto_sign/dilithium/dilithium3/clean/sign.c b/src/sign/dilithium/dilithium3/clean/sign.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/sign.c rename to src/sign/dilithium/dilithium3/clean/sign.c diff --git a/crypto_sign/dilithium/dilithium3/clean/sign.h b/src/sign/dilithium/dilithium3/clean/sign.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/sign.h rename to src/sign/dilithium/dilithium3/clean/sign.h diff --git a/crypto_sign/dilithium/dilithium3/clean/symmetric-shake.c b/src/sign/dilithium/dilithium3/clean/symmetric-shake.c similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/symmetric-shake.c rename to src/sign/dilithium/dilithium3/clean/symmetric-shake.c diff --git a/crypto_sign/dilithium/dilithium3/clean/symmetric.h b/src/sign/dilithium/dilithium3/clean/symmetric.h similarity index 100% rename from crypto_sign/dilithium/dilithium3/clean/symmetric.h rename to src/sign/dilithium/dilithium3/clean/symmetric.h diff --git a/src/sign/dilithium/dilithium5/avx2/CMakeLists.txt b/src/sign/dilithium/dilithium5/avx2/CMakeLists.txt new file mode 100644 index 00000000..ea6c20bd --- /dev/null +++ b/src/sign/dilithium/dilithium5/avx2/CMakeLists.txt @@ -0,0 +1,20 @@ +set( + SRC_AVX2_DILITHIUM5 + consts.c + f1600x4.S + fips202x4.c + invntt.S + ntt.S + packing.c + pointwise.S + poly.c + polyvec.c + rejsample.c + rounding.c + shuffle.S + sign.c + symmetric-shake.c) + +define_sig_alg(dilithium5_avx2 + PQCLEAN_DILITHIUM5_AVX2 "${SRC_AVX2_DILITHIUM5}" "${CMAKE_CURRENT_SOURCE_DIR}") + diff --git a/crypto_sign/dilithium/dilithium5/avx2/align.h b/src/sign/dilithium/dilithium5/avx2/align.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/align.h rename to src/sign/dilithium/dilithium5/avx2/align.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/api.h b/src/sign/dilithium/dilithium5/avx2/api.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/api.h rename to src/sign/dilithium/dilithium5/avx2/api.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/cdecl.h b/src/sign/dilithium/dilithium5/avx2/cdecl.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/cdecl.h rename to src/sign/dilithium/dilithium5/avx2/cdecl.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/consts.c b/src/sign/dilithium/dilithium5/avx2/consts.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/consts.c rename to src/sign/dilithium/dilithium5/avx2/consts.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/consts.h b/src/sign/dilithium/dilithium5/avx2/consts.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/consts.h rename to src/sign/dilithium/dilithium5/avx2/consts.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/f1600x4.S b/src/sign/dilithium/dilithium5/avx2/f1600x4.S similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/f1600x4.S rename to src/sign/dilithium/dilithium5/avx2/f1600x4.S diff --git a/crypto_sign/dilithium/dilithium5/avx2/fips202x4.c b/src/sign/dilithium/dilithium5/avx2/fips202x4.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/fips202x4.c rename to src/sign/dilithium/dilithium5/avx2/fips202x4.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/fips202x4.h b/src/sign/dilithium/dilithium5/avx2/fips202x4.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/fips202x4.h rename to src/sign/dilithium/dilithium5/avx2/fips202x4.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/invntt.S b/src/sign/dilithium/dilithium5/avx2/invntt.S similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/invntt.S rename to src/sign/dilithium/dilithium5/avx2/invntt.S diff --git a/crypto_sign/dilithium/dilithium5/avx2/ntt.S b/src/sign/dilithium/dilithium5/avx2/ntt.S similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/ntt.S rename to src/sign/dilithium/dilithium5/avx2/ntt.S diff --git a/crypto_sign/dilithium/dilithium5/avx2/ntt.h b/src/sign/dilithium/dilithium5/avx2/ntt.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/ntt.h rename to src/sign/dilithium/dilithium5/avx2/ntt.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/packing.c b/src/sign/dilithium/dilithium5/avx2/packing.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/packing.c rename to src/sign/dilithium/dilithium5/avx2/packing.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/packing.h b/src/sign/dilithium/dilithium5/avx2/packing.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/packing.h rename to src/sign/dilithium/dilithium5/avx2/packing.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/params.h b/src/sign/dilithium/dilithium5/avx2/params.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/params.h rename to src/sign/dilithium/dilithium5/avx2/params.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/pointwise.S b/src/sign/dilithium/dilithium5/avx2/pointwise.S similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/pointwise.S rename to src/sign/dilithium/dilithium5/avx2/pointwise.S diff --git a/crypto_sign/dilithium/dilithium5/avx2/poly.c b/src/sign/dilithium/dilithium5/avx2/poly.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/poly.c rename to src/sign/dilithium/dilithium5/avx2/poly.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/poly.h b/src/sign/dilithium/dilithium5/avx2/poly.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/poly.h rename to src/sign/dilithium/dilithium5/avx2/poly.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/polyvec.c b/src/sign/dilithium/dilithium5/avx2/polyvec.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/polyvec.c rename to src/sign/dilithium/dilithium5/avx2/polyvec.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/polyvec.h b/src/sign/dilithium/dilithium5/avx2/polyvec.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/polyvec.h rename to src/sign/dilithium/dilithium5/avx2/polyvec.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/rejsample.c b/src/sign/dilithium/dilithium5/avx2/rejsample.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/rejsample.c rename to src/sign/dilithium/dilithium5/avx2/rejsample.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/rejsample.h b/src/sign/dilithium/dilithium5/avx2/rejsample.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/rejsample.h rename to src/sign/dilithium/dilithium5/avx2/rejsample.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/rounding.c b/src/sign/dilithium/dilithium5/avx2/rounding.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/rounding.c rename to src/sign/dilithium/dilithium5/avx2/rounding.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/rounding.h b/src/sign/dilithium/dilithium5/avx2/rounding.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/rounding.h rename to src/sign/dilithium/dilithium5/avx2/rounding.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/shuffle.S b/src/sign/dilithium/dilithium5/avx2/shuffle.S similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/shuffle.S rename to src/sign/dilithium/dilithium5/avx2/shuffle.S diff --git a/crypto_sign/dilithium/dilithium5/avx2/shuffle.inc b/src/sign/dilithium/dilithium5/avx2/shuffle.inc similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/shuffle.inc rename to src/sign/dilithium/dilithium5/avx2/shuffle.inc diff --git a/crypto_sign/dilithium/dilithium5/avx2/sign.c b/src/sign/dilithium/dilithium5/avx2/sign.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/sign.c rename to src/sign/dilithium/dilithium5/avx2/sign.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/sign.h b/src/sign/dilithium/dilithium5/avx2/sign.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/sign.h rename to src/sign/dilithium/dilithium5/avx2/sign.h diff --git a/crypto_sign/dilithium/dilithium5/avx2/symmetric-shake.c b/src/sign/dilithium/dilithium5/avx2/symmetric-shake.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/symmetric-shake.c rename to src/sign/dilithium/dilithium5/avx2/symmetric-shake.c diff --git a/crypto_sign/dilithium/dilithium5/avx2/symmetric.h b/src/sign/dilithium/dilithium5/avx2/symmetric.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/avx2/symmetric.h rename to src/sign/dilithium/dilithium5/avx2/symmetric.h diff --git a/src/sign/dilithium/dilithium5/clean/CMakeLists.txt b/src/sign/dilithium/dilithium5/clean/CMakeLists.txt new file mode 100644 index 00000000..bd14a267 --- /dev/null +++ b/src/sign/dilithium/dilithium5/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_DILITHIUM5 + ntt.c + packing.c + poly.c + polyvec.c + reduce.c + rounding.c + sign.c + symmetric-shake.c +) + +define_sig_alg(dilithium5_clean + PQCLEAN_DILITHIUM5_CLEAN "${SRC_CLEAN_DILITHIUM5}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/dilithium/dilithium5/clean/api.h b/src/sign/dilithium/dilithium5/clean/api.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/api.h rename to src/sign/dilithium/dilithium5/clean/api.h diff --git a/crypto_sign/dilithium/dilithium5/clean/ntt.c b/src/sign/dilithium/dilithium5/clean/ntt.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/ntt.c rename to src/sign/dilithium/dilithium5/clean/ntt.c diff --git a/crypto_sign/dilithium/dilithium5/clean/ntt.h b/src/sign/dilithium/dilithium5/clean/ntt.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/ntt.h rename to src/sign/dilithium/dilithium5/clean/ntt.h diff --git a/crypto_sign/dilithium/dilithium5/clean/packing.c b/src/sign/dilithium/dilithium5/clean/packing.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/packing.c rename to src/sign/dilithium/dilithium5/clean/packing.c diff --git a/crypto_sign/dilithium/dilithium5/clean/packing.h b/src/sign/dilithium/dilithium5/clean/packing.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/packing.h rename to src/sign/dilithium/dilithium5/clean/packing.h diff --git a/crypto_sign/dilithium/dilithium5/clean/params.h b/src/sign/dilithium/dilithium5/clean/params.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/params.h rename to src/sign/dilithium/dilithium5/clean/params.h diff --git a/crypto_sign/dilithium/dilithium5/clean/poly.c b/src/sign/dilithium/dilithium5/clean/poly.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/poly.c rename to src/sign/dilithium/dilithium5/clean/poly.c diff --git a/crypto_sign/dilithium/dilithium5/clean/poly.h b/src/sign/dilithium/dilithium5/clean/poly.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/poly.h rename to src/sign/dilithium/dilithium5/clean/poly.h diff --git a/crypto_sign/dilithium/dilithium5/clean/polyvec.c b/src/sign/dilithium/dilithium5/clean/polyvec.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/polyvec.c rename to src/sign/dilithium/dilithium5/clean/polyvec.c diff --git a/crypto_sign/dilithium/dilithium5/clean/polyvec.h b/src/sign/dilithium/dilithium5/clean/polyvec.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/polyvec.h rename to src/sign/dilithium/dilithium5/clean/polyvec.h diff --git a/crypto_sign/dilithium/dilithium5/clean/reduce.c b/src/sign/dilithium/dilithium5/clean/reduce.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/reduce.c rename to src/sign/dilithium/dilithium5/clean/reduce.c diff --git a/crypto_sign/dilithium/dilithium5/clean/reduce.h b/src/sign/dilithium/dilithium5/clean/reduce.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/reduce.h rename to src/sign/dilithium/dilithium5/clean/reduce.h diff --git a/crypto_sign/dilithium/dilithium5/clean/rounding.c b/src/sign/dilithium/dilithium5/clean/rounding.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/rounding.c rename to src/sign/dilithium/dilithium5/clean/rounding.c diff --git a/crypto_sign/dilithium/dilithium5/clean/rounding.h b/src/sign/dilithium/dilithium5/clean/rounding.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/rounding.h rename to src/sign/dilithium/dilithium5/clean/rounding.h diff --git a/crypto_sign/dilithium/dilithium5/clean/sign.c b/src/sign/dilithium/dilithium5/clean/sign.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/sign.c rename to src/sign/dilithium/dilithium5/clean/sign.c diff --git a/crypto_sign/dilithium/dilithium5/clean/sign.h b/src/sign/dilithium/dilithium5/clean/sign.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/sign.h rename to src/sign/dilithium/dilithium5/clean/sign.h diff --git a/crypto_sign/dilithium/dilithium5/clean/symmetric-shake.c b/src/sign/dilithium/dilithium5/clean/symmetric-shake.c similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/symmetric-shake.c rename to src/sign/dilithium/dilithium5/clean/symmetric-shake.c diff --git a/crypto_sign/dilithium/dilithium5/clean/symmetric.h b/src/sign/dilithium/dilithium5/clean/symmetric.h similarity index 100% rename from crypto_sign/dilithium/dilithium5/clean/symmetric.h rename to src/sign/dilithium/dilithium5/clean/symmetric.h diff --git a/src/sign/dilithium/sampling.c b/src/sign/dilithium/sampling.c new file mode 100644 index 00000000..98d2c849 --- /dev/null +++ b/src/sign/dilithium/sampling.c @@ -0,0 +1,46 @@ +#include +#include + +#include +#include + +// calculate number of bits used to encode 'v' +static inline uint8_t bitlen8(uint8_t v) { + unsigned r = 8; + while (!((v >> (r-1)) & 1) && --r) {} + return r; +} + + +unsigned sampling_rej_eta( + int32_t *out, + size_t olen, + const uint8_t *in, + size_t isz, + int8_t maxv) { + + const uint8_t maxv_log2 = bitlen8(maxv); + const int32_t maxv_h = maxv>>1; + const uint8_t mask = (1<> c) & mask; + if (y < maxv) { + out[oid++] = maxv_h - y; + } + c += maxv_log2; + } while ((c+maxv_log2 < 8*sizeof tmp) && (oid < olen)); + bid += sizeof tmp; + c = 0; + } + + return oid; +} diff --git a/src/sign/dilithium/sampling.h b/src/sign/dilithium/sampling.h new file mode 100644 index 00000000..4d5e3298 --- /dev/null +++ b/src/sign/dilithium/sampling.h @@ -0,0 +1,8 @@ +#include + +unsigned int sampling_rej_eta( + int32_t *a, + unsigned int len, + const uint8_t *buf, + unsigned int buflen, + uint8_t maxv); diff --git a/src/sign/falcon/falcon-1024/avx2/CMakeLists.txt b/src/sign/falcon/falcon-1024/avx2/CMakeLists.txt new file mode 100644 index 00000000..d12a5ca2 --- /dev/null +++ b/src/sign/falcon/falcon-1024/avx2/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_AVX2_FALCON1024 + codec.c + common.c + fft.c + fpr.c + keygen.c + pqclean.c + rng.c + sign.c + vrfy.c) + +define_sig_alg( + falcon1024_avx2 + PQCLEAN_FALCON1024_AVX2 "${SRC_AVX2_FALCON1024}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/falcon/falcon-1024/avx2/api.h b/src/sign/falcon/falcon-1024/avx2/api.h similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/api.h rename to src/sign/falcon/falcon-1024/avx2/api.h diff --git a/crypto_sign/falcon/falcon-1024/avx2/codec.c b/src/sign/falcon/falcon-1024/avx2/codec.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/codec.c rename to src/sign/falcon/falcon-1024/avx2/codec.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/common.c b/src/sign/falcon/falcon-1024/avx2/common.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/common.c rename to src/sign/falcon/falcon-1024/avx2/common.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/fft.c b/src/sign/falcon/falcon-1024/avx2/fft.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/fft.c rename to src/sign/falcon/falcon-1024/avx2/fft.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/fpr.c b/src/sign/falcon/falcon-1024/avx2/fpr.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/fpr.c rename to src/sign/falcon/falcon-1024/avx2/fpr.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/fpr.h b/src/sign/falcon/falcon-1024/avx2/fpr.h similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/fpr.h rename to src/sign/falcon/falcon-1024/avx2/fpr.h diff --git a/crypto_sign/falcon/falcon-1024/avx2/inner.h b/src/sign/falcon/falcon-1024/avx2/inner.h similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/inner.h rename to src/sign/falcon/falcon-1024/avx2/inner.h diff --git a/crypto_sign/falcon/falcon-1024/avx2/keygen.c b/src/sign/falcon/falcon-1024/avx2/keygen.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/keygen.c rename to src/sign/falcon/falcon-1024/avx2/keygen.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/pqclean.c b/src/sign/falcon/falcon-1024/avx2/pqclean.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/pqclean.c rename to src/sign/falcon/falcon-1024/avx2/pqclean.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/rng.c b/src/sign/falcon/falcon-1024/avx2/rng.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/rng.c rename to src/sign/falcon/falcon-1024/avx2/rng.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/sign.c b/src/sign/falcon/falcon-1024/avx2/sign.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/sign.c rename to src/sign/falcon/falcon-1024/avx2/sign.c diff --git a/crypto_sign/falcon/falcon-1024/avx2/vrfy.c b/src/sign/falcon/falcon-1024/avx2/vrfy.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/avx2/vrfy.c rename to src/sign/falcon/falcon-1024/avx2/vrfy.c diff --git a/src/sign/falcon/falcon-1024/clean/CMakeLists.txt b/src/sign/falcon/falcon-1024/clean/CMakeLists.txt new file mode 100644 index 00000000..287cb234 --- /dev/null +++ b/src/sign/falcon/falcon-1024/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_FALCON1024 + codec.c + common.c + fft.c + fpr.c + keygen.c + pqclean.c + rng.c + sign.c + vrfy.c) + +define_sig_alg( + falcon1024_clean + PQCLEAN_FALCON1024_CLEAN "${SRC_CLEAN_FALCON1024}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/falcon/falcon-1024/clean/api.h b/src/sign/falcon/falcon-1024/clean/api.h similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/api.h rename to src/sign/falcon/falcon-1024/clean/api.h diff --git a/crypto_sign/falcon/falcon-1024/clean/codec.c b/src/sign/falcon/falcon-1024/clean/codec.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/codec.c rename to src/sign/falcon/falcon-1024/clean/codec.c diff --git a/crypto_sign/falcon/falcon-1024/clean/common.c b/src/sign/falcon/falcon-1024/clean/common.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/common.c rename to src/sign/falcon/falcon-1024/clean/common.c diff --git a/crypto_sign/falcon/falcon-1024/clean/fft.c b/src/sign/falcon/falcon-1024/clean/fft.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/fft.c rename to src/sign/falcon/falcon-1024/clean/fft.c diff --git a/crypto_sign/falcon/falcon-1024/clean/fpr.c b/src/sign/falcon/falcon-1024/clean/fpr.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/fpr.c rename to src/sign/falcon/falcon-1024/clean/fpr.c diff --git a/crypto_sign/falcon/falcon-1024/clean/fpr.h b/src/sign/falcon/falcon-1024/clean/fpr.h similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/fpr.h rename to src/sign/falcon/falcon-1024/clean/fpr.h diff --git a/crypto_sign/falcon/falcon-1024/clean/inner.h b/src/sign/falcon/falcon-1024/clean/inner.h similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/inner.h rename to src/sign/falcon/falcon-1024/clean/inner.h diff --git a/crypto_sign/falcon/falcon-1024/clean/keygen.c b/src/sign/falcon/falcon-1024/clean/keygen.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/keygen.c rename to src/sign/falcon/falcon-1024/clean/keygen.c diff --git a/crypto_sign/falcon/falcon-1024/clean/pqclean.c b/src/sign/falcon/falcon-1024/clean/pqclean.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/pqclean.c rename to src/sign/falcon/falcon-1024/clean/pqclean.c diff --git a/crypto_sign/falcon/falcon-1024/clean/rng.c b/src/sign/falcon/falcon-1024/clean/rng.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/rng.c rename to src/sign/falcon/falcon-1024/clean/rng.c diff --git a/crypto_sign/falcon/falcon-1024/clean/sign.c b/src/sign/falcon/falcon-1024/clean/sign.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/sign.c rename to src/sign/falcon/falcon-1024/clean/sign.c diff --git a/crypto_sign/falcon/falcon-1024/clean/vrfy.c b/src/sign/falcon/falcon-1024/clean/vrfy.c similarity index 100% rename from crypto_sign/falcon/falcon-1024/clean/vrfy.c rename to src/sign/falcon/falcon-1024/clean/vrfy.c diff --git a/src/sign/falcon/falcon-512/avx2/CMakeLists.txt b/src/sign/falcon/falcon-512/avx2/CMakeLists.txt new file mode 100644 index 00000000..93e384f1 --- /dev/null +++ b/src/sign/falcon/falcon-512/avx2/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_AVX2_FALCON512 + codec.c + common.c + fft.c + fpr.c + keygen.c + pqclean.c + rng.c + sign.c + vrfy.c) + +define_sig_alg( + falcon512_avx2 + PQCLEAN_FALCON512_AVX2 "${SRC_AVX2_FALCON512}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/falcon/falcon-512/avx2/api.h b/src/sign/falcon/falcon-512/avx2/api.h similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/api.h rename to src/sign/falcon/falcon-512/avx2/api.h diff --git a/crypto_sign/falcon/falcon-512/avx2/codec.c b/src/sign/falcon/falcon-512/avx2/codec.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/codec.c rename to src/sign/falcon/falcon-512/avx2/codec.c diff --git a/crypto_sign/falcon/falcon-512/avx2/common.c b/src/sign/falcon/falcon-512/avx2/common.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/common.c rename to src/sign/falcon/falcon-512/avx2/common.c diff --git a/crypto_sign/falcon/falcon-512/avx2/fft.c b/src/sign/falcon/falcon-512/avx2/fft.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/fft.c rename to src/sign/falcon/falcon-512/avx2/fft.c diff --git a/crypto_sign/falcon/falcon-512/avx2/fpr.c b/src/sign/falcon/falcon-512/avx2/fpr.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/fpr.c rename to src/sign/falcon/falcon-512/avx2/fpr.c diff --git a/crypto_sign/falcon/falcon-512/avx2/fpr.h b/src/sign/falcon/falcon-512/avx2/fpr.h similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/fpr.h rename to src/sign/falcon/falcon-512/avx2/fpr.h diff --git a/crypto_sign/falcon/falcon-512/avx2/inner.h b/src/sign/falcon/falcon-512/avx2/inner.h similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/inner.h rename to src/sign/falcon/falcon-512/avx2/inner.h diff --git a/crypto_sign/falcon/falcon-512/avx2/keygen.c b/src/sign/falcon/falcon-512/avx2/keygen.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/keygen.c rename to src/sign/falcon/falcon-512/avx2/keygen.c diff --git a/crypto_sign/falcon/falcon-512/avx2/pqclean.c b/src/sign/falcon/falcon-512/avx2/pqclean.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/pqclean.c rename to src/sign/falcon/falcon-512/avx2/pqclean.c diff --git a/crypto_sign/falcon/falcon-512/avx2/rng.c b/src/sign/falcon/falcon-512/avx2/rng.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/rng.c rename to src/sign/falcon/falcon-512/avx2/rng.c diff --git a/crypto_sign/falcon/falcon-512/avx2/sign.c b/src/sign/falcon/falcon-512/avx2/sign.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/sign.c rename to src/sign/falcon/falcon-512/avx2/sign.c diff --git a/crypto_sign/falcon/falcon-512/avx2/vrfy.c b/src/sign/falcon/falcon-512/avx2/vrfy.c similarity index 100% rename from crypto_sign/falcon/falcon-512/avx2/vrfy.c rename to src/sign/falcon/falcon-512/avx2/vrfy.c diff --git a/src/sign/falcon/falcon-512/clean/CMakeLists.txt b/src/sign/falcon/falcon-512/clean/CMakeLists.txt new file mode 100644 index 00000000..ce2930a6 --- /dev/null +++ b/src/sign/falcon/falcon-512/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_FALCON512 + codec.c + common.c + fft.c + fpr.c + keygen.c + pqclean.c + rng.c + sign.c + vrfy.c) + +define_sig_alg( + falcon512_clean + PQCLEAN_FALCON512_CLEAN "${SRC_CLEAN_FALCON512}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/falcon/falcon-512/clean/api.h b/src/sign/falcon/falcon-512/clean/api.h similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/api.h rename to src/sign/falcon/falcon-512/clean/api.h diff --git a/crypto_sign/falcon/falcon-512/clean/codec.c b/src/sign/falcon/falcon-512/clean/codec.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/codec.c rename to src/sign/falcon/falcon-512/clean/codec.c diff --git a/crypto_sign/falcon/falcon-512/clean/common.c b/src/sign/falcon/falcon-512/clean/common.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/common.c rename to src/sign/falcon/falcon-512/clean/common.c diff --git a/crypto_sign/falcon/falcon-512/clean/fft.c b/src/sign/falcon/falcon-512/clean/fft.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/fft.c rename to src/sign/falcon/falcon-512/clean/fft.c diff --git a/crypto_sign/falcon/falcon-512/clean/fpr.c b/src/sign/falcon/falcon-512/clean/fpr.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/fpr.c rename to src/sign/falcon/falcon-512/clean/fpr.c diff --git a/crypto_sign/falcon/falcon-512/clean/fpr.h b/src/sign/falcon/falcon-512/clean/fpr.h similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/fpr.h rename to src/sign/falcon/falcon-512/clean/fpr.h diff --git a/crypto_sign/falcon/falcon-512/clean/inner.h b/src/sign/falcon/falcon-512/clean/inner.h similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/inner.h rename to src/sign/falcon/falcon-512/clean/inner.h diff --git a/crypto_sign/falcon/falcon-512/clean/keygen.c b/src/sign/falcon/falcon-512/clean/keygen.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/keygen.c rename to src/sign/falcon/falcon-512/clean/keygen.c diff --git a/crypto_sign/falcon/falcon-512/clean/pqclean.c b/src/sign/falcon/falcon-512/clean/pqclean.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/pqclean.c rename to src/sign/falcon/falcon-512/clean/pqclean.c diff --git a/crypto_sign/falcon/falcon-512/clean/rng.c b/src/sign/falcon/falcon-512/clean/rng.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/rng.c rename to src/sign/falcon/falcon-512/clean/rng.c diff --git a/crypto_sign/falcon/falcon-512/clean/sign.c b/src/sign/falcon/falcon-512/clean/sign.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/sign.c rename to src/sign/falcon/falcon-512/clean/sign.c diff --git a/crypto_sign/falcon/falcon-512/clean/vrfy.c b/src/sign/falcon/falcon-512/clean/vrfy.c similarity index 100% rename from crypto_sign/falcon/falcon-512/clean/vrfy.c rename to src/sign/falcon/falcon-512/clean/vrfy.c diff --git a/src/sign/rainbow/rainbowI-classic/clean/CMakeLists.txt b/src/sign/rainbow/rainbowI-classic/clean/CMakeLists.txt new file mode 100644 index 00000000..dfe8e907 --- /dev/null +++ b/src/sign/rainbow/rainbowI-classic/clean/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_CLEAN_RAINBOW_I_CLASSSIC + blas.c + blas_comm.c + gf.c + parallel_matrix_op.c + rainbow.c + rainbow_keypair.c + rainbow_keypair_computation.c + sign.c + utils_hash.c + utils_prng.c) + +define_sig_alg( + rainbowIclassic_clean + PQCLEAN_RAINBOWICLASSIC_CLEAN "${SRC_CLEAN_RAINBOW_I_CLASSSIC}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/api.h b/src/sign/rainbow/rainbowI-classic/clean/api.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/api.h rename to src/sign/rainbow/rainbowI-classic/clean/api.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/blas.c b/src/sign/rainbow/rainbowI-classic/clean/blas.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/blas.c rename to src/sign/rainbow/rainbowI-classic/clean/blas.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/blas.h b/src/sign/rainbow/rainbowI-classic/clean/blas.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/blas.h rename to src/sign/rainbow/rainbowI-classic/clean/blas.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/blas_comm.c b/src/sign/rainbow/rainbowI-classic/clean/blas_comm.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/blas_comm.c rename to src/sign/rainbow/rainbowI-classic/clean/blas_comm.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/blas_comm.h b/src/sign/rainbow/rainbowI-classic/clean/blas_comm.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/blas_comm.h rename to src/sign/rainbow/rainbowI-classic/clean/blas_comm.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/gf.c b/src/sign/rainbow/rainbowI-classic/clean/gf.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/gf.c rename to src/sign/rainbow/rainbowI-classic/clean/gf.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/gf.h b/src/sign/rainbow/rainbowI-classic/clean/gf.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/gf.h rename to src/sign/rainbow/rainbowI-classic/clean/gf.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.c b/src/sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.c rename to src/sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.h b/src/sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.h rename to src/sign/rainbow/rainbowI-classic/clean/parallel_matrix_op.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow.c b/src/sign/rainbow/rainbowI-classic/clean/rainbow.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow.c rename to src/sign/rainbow/rainbowI-classic/clean/rainbow.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow.h b/src/sign/rainbow/rainbowI-classic/clean/rainbow.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow.h rename to src/sign/rainbow/rainbowI-classic/clean/rainbow.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow_blas.h b/src/sign/rainbow/rainbowI-classic/clean/rainbow_blas.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow_blas.h rename to src/sign/rainbow/rainbowI-classic/clean/rainbow_blas.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow_config.h b/src/sign/rainbow/rainbowI-classic/clean/rainbow_config.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow_config.h rename to src/sign/rainbow/rainbowI-classic/clean/rainbow_config.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair.c b/src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair.c rename to src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair.h b/src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair.h rename to src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.c b/src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.c rename to src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.h b/src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.h rename to src/sign/rainbow/rainbowI-classic/clean/rainbow_keypair_computation.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/sign.c b/src/sign/rainbow/rainbowI-classic/clean/sign.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/sign.c rename to src/sign/rainbow/rainbowI-classic/clean/sign.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/utils_hash.c b/src/sign/rainbow/rainbowI-classic/clean/utils_hash.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/utils_hash.c rename to src/sign/rainbow/rainbowI-classic/clean/utils_hash.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/utils_hash.h b/src/sign/rainbow/rainbowI-classic/clean/utils_hash.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/utils_hash.h rename to src/sign/rainbow/rainbowI-classic/clean/utils_hash.h diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/utils_prng.c b/src/sign/rainbow/rainbowI-classic/clean/utils_prng.c similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/utils_prng.c rename to src/sign/rainbow/rainbowI-classic/clean/utils_prng.c diff --git a/crypto_sign/rainbow/rainbowI-classic/clean/utils_prng.h b/src/sign/rainbow/rainbowI-classic/clean/utils_prng.h similarity index 100% rename from crypto_sign/rainbow/rainbowI-classic/clean/utils_prng.h rename to src/sign/rainbow/rainbowI-classic/clean/utils_prng.h diff --git a/src/sign/rainbow/rainbowIII-classic/clean/CMakeLists.txt b/src/sign/rainbow/rainbowIII-classic/clean/CMakeLists.txt new file mode 100644 index 00000000..4219979c --- /dev/null +++ b/src/sign/rainbow/rainbowIII-classic/clean/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_CLEAN_RAINBOW_III_CLASSSIC + blas.c + blas_comm.c + gf.c + parallel_matrix_op.c + rainbow.c + rainbow_keypair.c + rainbow_keypair_computation.c + sign.c + utils_hash.c + utils_prng.c) + +define_sig_alg( + rainbowIIIclassic_clean + PQCLEAN_RAINBOWIIICLASSIC_CLEAN "${SRC_CLEAN_RAINBOW_III_CLASSSIC}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/api.h b/src/sign/rainbow/rainbowIII-classic/clean/api.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/api.h rename to src/sign/rainbow/rainbowIII-classic/clean/api.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/blas.c b/src/sign/rainbow/rainbowIII-classic/clean/blas.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/blas.c rename to src/sign/rainbow/rainbowIII-classic/clean/blas.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/blas.h b/src/sign/rainbow/rainbowIII-classic/clean/blas.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/blas.h rename to src/sign/rainbow/rainbowIII-classic/clean/blas.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/blas_comm.c b/src/sign/rainbow/rainbowIII-classic/clean/blas_comm.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/blas_comm.c rename to src/sign/rainbow/rainbowIII-classic/clean/blas_comm.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/blas_comm.h b/src/sign/rainbow/rainbowIII-classic/clean/blas_comm.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/blas_comm.h rename to src/sign/rainbow/rainbowIII-classic/clean/blas_comm.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/gf.c b/src/sign/rainbow/rainbowIII-classic/clean/gf.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/gf.c rename to src/sign/rainbow/rainbowIII-classic/clean/gf.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/gf.h b/src/sign/rainbow/rainbowIII-classic/clean/gf.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/gf.h rename to src/sign/rainbow/rainbowIII-classic/clean/gf.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.c b/src/sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.c rename to src/sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.h b/src/sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.h rename to src/sign/rainbow/rainbowIII-classic/clean/parallel_matrix_op.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow.c b/src/sign/rainbow/rainbowIII-classic/clean/rainbow.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow.c rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow.h b/src/sign/rainbow/rainbowIII-classic/clean/rainbow.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow.h rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_blas.h b/src/sign/rainbow/rainbowIII-classic/clean/rainbow_blas.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_blas.h rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow_blas.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_config.h b/src/sign/rainbow/rainbowIII-classic/clean/rainbow_config.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_config.h rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow_config.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.c b/src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.c rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.h b/src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.h rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.c b/src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.c rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.h b/src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.h rename to src/sign/rainbow/rainbowIII-classic/clean/rainbow_keypair_computation.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/sign.c b/src/sign/rainbow/rainbowIII-classic/clean/sign.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/sign.c rename to src/sign/rainbow/rainbowIII-classic/clean/sign.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/utils_hash.c b/src/sign/rainbow/rainbowIII-classic/clean/utils_hash.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/utils_hash.c rename to src/sign/rainbow/rainbowIII-classic/clean/utils_hash.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/utils_hash.h b/src/sign/rainbow/rainbowIII-classic/clean/utils_hash.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/utils_hash.h rename to src/sign/rainbow/rainbowIII-classic/clean/utils_hash.h diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/utils_prng.c b/src/sign/rainbow/rainbowIII-classic/clean/utils_prng.c similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/utils_prng.c rename to src/sign/rainbow/rainbowIII-classic/clean/utils_prng.c diff --git a/crypto_sign/rainbow/rainbowIII-classic/clean/utils_prng.h b/src/sign/rainbow/rainbowIII-classic/clean/utils_prng.h similarity index 100% rename from crypto_sign/rainbow/rainbowIII-classic/clean/utils_prng.h rename to src/sign/rainbow/rainbowIII-classic/clean/utils_prng.h diff --git a/src/sign/rainbow/rainbowV-classic/clean/CMakeLists.txt b/src/sign/rainbow/rainbowV-classic/clean/CMakeLists.txt new file mode 100644 index 00000000..31332c71 --- /dev/null +++ b/src/sign/rainbow/rainbowV-classic/clean/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_CLEAN_RAINBOW_V_CLASSSIC + blas.c + blas_comm.c + gf.c + parallel_matrix_op.c + rainbow.c + rainbow_keypair.c + rainbow_keypair_computation.c + sign.c + utils_hash.c + utils_prng.c) + +define_sig_alg( + rainbowVclassic_clean + PQCLEAN_RAINBOWVCLASSIC_CLEAN "${SRC_CLEAN_RAINBOW_V_CLASSSIC}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/api.h b/src/sign/rainbow/rainbowV-classic/clean/api.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/api.h rename to src/sign/rainbow/rainbowV-classic/clean/api.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/blas.c b/src/sign/rainbow/rainbowV-classic/clean/blas.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/blas.c rename to src/sign/rainbow/rainbowV-classic/clean/blas.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/blas.h b/src/sign/rainbow/rainbowV-classic/clean/blas.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/blas.h rename to src/sign/rainbow/rainbowV-classic/clean/blas.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/blas_comm.c b/src/sign/rainbow/rainbowV-classic/clean/blas_comm.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/blas_comm.c rename to src/sign/rainbow/rainbowV-classic/clean/blas_comm.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/blas_comm.h b/src/sign/rainbow/rainbowV-classic/clean/blas_comm.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/blas_comm.h rename to src/sign/rainbow/rainbowV-classic/clean/blas_comm.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/gf.c b/src/sign/rainbow/rainbowV-classic/clean/gf.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/gf.c rename to src/sign/rainbow/rainbowV-classic/clean/gf.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/gf.h b/src/sign/rainbow/rainbowV-classic/clean/gf.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/gf.h rename to src/sign/rainbow/rainbowV-classic/clean/gf.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.c b/src/sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.c rename to src/sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.h b/src/sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.h rename to src/sign/rainbow/rainbowV-classic/clean/parallel_matrix_op.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow.c b/src/sign/rainbow/rainbowV-classic/clean/rainbow.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow.c rename to src/sign/rainbow/rainbowV-classic/clean/rainbow.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow.h b/src/sign/rainbow/rainbowV-classic/clean/rainbow.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow.h rename to src/sign/rainbow/rainbowV-classic/clean/rainbow.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow_blas.h b/src/sign/rainbow/rainbowV-classic/clean/rainbow_blas.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow_blas.h rename to src/sign/rainbow/rainbowV-classic/clean/rainbow_blas.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow_config.h b/src/sign/rainbow/rainbowV-classic/clean/rainbow_config.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow_config.h rename to src/sign/rainbow/rainbowV-classic/clean/rainbow_config.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair.c b/src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair.c rename to src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair.h b/src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair.h rename to src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.c b/src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.c rename to src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.h b/src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.h rename to src/sign/rainbow/rainbowV-classic/clean/rainbow_keypair_computation.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/sign.c b/src/sign/rainbow/rainbowV-classic/clean/sign.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/sign.c rename to src/sign/rainbow/rainbowV-classic/clean/sign.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/utils_hash.c b/src/sign/rainbow/rainbowV-classic/clean/utils_hash.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/utils_hash.c rename to src/sign/rainbow/rainbowV-classic/clean/utils_hash.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/utils_hash.h b/src/sign/rainbow/rainbowV-classic/clean/utils_hash.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/utils_hash.h rename to src/sign/rainbow/rainbowV-classic/clean/utils_hash.h diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/utils_prng.c b/src/sign/rainbow/rainbowV-classic/clean/utils_prng.c similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/utils_prng.c rename to src/sign/rainbow/rainbowV-classic/clean/utils_prng.c diff --git a/crypto_sign/rainbow/rainbowV-classic/clean/utils_prng.h b/src/sign/rainbow/rainbowV-classic/clean/utils_prng.h similarity index 100% rename from crypto_sign/rainbow/rainbowV-classic/clean/utils_prng.h rename to src/sign/rainbow/rainbowV-classic/clean/utils_prng.h diff --git a/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..d5e825fd --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_128F_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_robustx8.c + utilsx8.c) + +define_sig_alg( + sphincs_sha256_128f_robust_avx2 + PQCLEAN_SPHINCSSHA256128FROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHA256_128F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/address.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/address.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/api.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/params.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robustx8.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robustx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robustx8.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thash_sha256_robustx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128f-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..f082451e --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_128F_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_128f_robust_clean + PQCLEAN_SPHINCSSHA256128FROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_128F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/address.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/address.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/address.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/address.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/api.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/api.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/fors.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/fors.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/hash.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/params.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/params.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/sign.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/thash.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/utils.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/utils.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/wots.c b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/wots.h b/src/sign/sphincs/sphincs-sha256-128f-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-robust/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-128f-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..5ba76d9f --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_128F_SIMPLE + address.c + fors.c + hash_sha256.c + hash_sha256x8.c + sha256avx.c + sha256.c + sha256x8.c + sign.c + thash_sha256_simple.c + thash_sha256_simplex8.c + utils.c + utilsx8.c + wots.c) + +define_sig_alg( + sphincs_sha256_128f_simple_avx2 + PQCLEAN_SPHINCSSHA256128FSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHA256_128F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/address.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/address.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/api.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/params.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simplex8.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simplex8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simplex8.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thash_sha256_simplex8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128f-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..5b9b403a --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_128F_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_128f_simple_clean + PQCLEAN_SPHINCSSHA256128FSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_128F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") + diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/address.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/address.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/address.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/address.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/api.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/api.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/fors.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/fors.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/hash.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/params.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/params.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/sign.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/thash.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/utils.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/utils.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/wots.c b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/wots.h b/src/sign/sphincs/sphincs-sha256-128f-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128f-simple/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-128f-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..6845ad51 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_128S_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_robustx8.c + utilsx8.c) + +define_sig_alg( + sphincs_sha256_128s_robust_avx2 + PQCLEAN_SPHINCSSHA256128SROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHA256_128S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/address.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/address.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/api.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/params.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robustx8.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robustx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robustx8.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thash_sha256_robustx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128s-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..78b874ac --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_128S_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_128s_robust_clean + PQCLEAN_SPHINCSSHA256128SROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_128S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/address.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/address.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/address.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/address.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/api.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/api.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/fors.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/fors.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/hash.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/params.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/params.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/sign.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/thash.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/utils.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/utils.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/wots.c b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/wots.h b/src/sign/sphincs/sphincs-sha256-128s-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-robust/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-128s-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..0b7b8a33 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_128S_SIMPLE + address.c + fors.c + hash_sha256.c + hash_sha256x8.c + sha256avx.c + sha256.c + sha256x8.c + sign.c + thash_sha256_simple.c + thash_sha256_simplex8.c + utils.c + utilsx8.c + wots.c) + +define_sig_alg( + sphincs_sha256_128s_simple_avx2 + PQCLEAN_SPHINCSSHA256128SSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHA256_128S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/address.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/address.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/api.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/params.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simplex8.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simplex8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simplex8.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thash_sha256_simplex8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-128s-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..4962f90b --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_128S_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_128s_simple_clean + PQCLEAN_SPHINCSSHA256128SSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_128S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/address.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/address.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/address.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/address.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/api.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/api.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/fors.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/fors.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/hash.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/params.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/params.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/sign.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/thash.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/utils.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/utils.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/wots.c b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/wots.h b/src/sign/sphincs/sphincs-sha256-128s-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-128s-simple/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-128s-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..5569c38b --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_192F_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_robustx8.c + utilsx8.c) + +define_sig_alg( + sphincs_sha256_192f_robust_avx2 + PQCLEAN_SPHINCSSHA256192FROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHA256_192F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/address.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/address.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/api.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/params.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robustx8.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robustx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robustx8.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thash_sha256_robustx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192f-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..80ec1da5 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_192F_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c +) + +define_sig_alg( + sphincs_sha256_192f_robust_clean + PQCLEAN_SPHINCSSHA256192FROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_192F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/address.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/address.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/address.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/address.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/api.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/api.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/fors.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/fors.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/hash.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/params.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/params.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/sign.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/thash.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/utils.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/utils.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/wots.c b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/wots.h b/src/sign/sphincs/sphincs-sha256-192f-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-robust/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-192f-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..e534a791 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_192F_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_simplex8.c + utilsx8.c +) +define_sig_alg( + sphincs_sha256_192f_simple_avx2 + PQCLEAN_SPHINCSSHA256192FSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHA256_192F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/address.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/address.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/api.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/params.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simplex8.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simplex8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simplex8.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thash_sha256_simplex8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192f-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..554793d7 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_192F_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_192f_simple_clean + PQCLEAN_SPHINCSSHA256192FSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_192F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/address.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/address.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/address.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/address.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/api.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/api.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/fors.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/fors.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/hash.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/params.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/params.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/sign.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/thash.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/utils.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/utils.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/wots.c b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/wots.h b/src/sign/sphincs/sphincs-sha256-192f-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192f-simple/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-192f-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..41e6ddf8 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_192S_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_robustx8.c + utilsx8.c) + +define_sig_alg( + sphincs_sha256_192s_robust_avx2 + PQCLEAN_SPHINCSSHA256192SROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHA256_192S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/address.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/address.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/api.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/params.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robustx8.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robustx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robustx8.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thash_sha256_robustx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192s-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..3d29880e --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_192S_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_192s_robust_clean + PQCLEAN_SPHINCSSHA256192SROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_192S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/address.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/address.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/address.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/address.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/api.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/api.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/fors.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/fors.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/hash.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/params.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/params.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/sign.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/thash.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/utils.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/utils.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/wots.c b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/wots.h b/src/sign/sphincs/sphincs-sha256-192s-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-robust/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-192s-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..7f843c01 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_192S_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_simplex8.c + utilsx8.c +) +define_sig_alg( + sphincs_sha256_192s_simple_avx2 + PQCLEAN_SPHINCSSHA256192SSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHA256_192S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/address.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/address.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/api.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/params.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simplex8.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simplex8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simplex8.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thash_sha256_simplex8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-192s-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..e269d07a --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_192S_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_192s_simple_clean + PQCLEAN_SPHINCSSHA256192SSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_192S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/address.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/address.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/address.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/address.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/api.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/api.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/fors.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/fors.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/hash.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/params.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/params.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/sign.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/thash.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/utils.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/utils.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/wots.c b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/wots.h b/src/sign/sphincs/sphincs-sha256-192s-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-192s-simple/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-192s-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..2cdb9a76 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_256F_ROBUST + address.c + fors.c + hash_sha256.c + hash_sha256x8.c + sha256avx.c + sha256.c + sha256x8.c + sign.c + thash_sha256_robust.c + thash_sha256_robustx8.c + utils.c + utilsx8.c + wots.c) + +define_sig_alg( + sphincs_sha256_256f_robust_avx2 + PQCLEAN_SPHINCSSHA256256FROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHA256_256F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/address.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/address.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/api.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/params.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robustx8.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robustx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robustx8.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thash_sha256_robustx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256f-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..7d282ba9 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_256F_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_256f_robust_clean + PQCLEAN_SPHINCSSHA256256FROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_256F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/address.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/address.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/address.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/address.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/api.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/api.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/fors.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/fors.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/hash.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/params.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/params.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/sign.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/thash.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/utils.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/utils.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/wots.c b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/wots.h b/src/sign/sphincs/sphincs-sha256-256f-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-robust/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-256f-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..369c21ca --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_256F_SIMPLE + address.c + fors.c + hash_sha256.c + hash_sha256x8.c + sha256avx.c + sha256.c + sha256x8.c + sign.c + thash_sha256_simple.c + thash_sha256_simplex8.c + utils.c + utilsx8.c + wots.c) + +define_sig_alg( + sphincs_sha256_256f_simple_avx2 + PQCLEAN_SPHINCSSHA256256FSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHA256_256F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/address.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/address.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/api.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/params.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simplex8.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simplex8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simplex8.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thash_sha256_simplex8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256f-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..214a43b1 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/CMakeLists.txt @@ -0,0 +1,15 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_256F_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_256f_simple_clean + PQCLEAN_SPHINCSSHA256256FSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_256F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") + diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/address.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/address.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/address.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/address.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/api.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/api.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/fors.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/fors.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/hash.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/params.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/params.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/sign.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/thash.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/utils.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/utils.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/wots.c b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/wots.h b/src/sign/sphincs/sphincs-sha256-256f-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256f-simple/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-256f-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..00f625ca --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_256S_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_robustx8.c + utilsx8.c) + +define_sig_alg( + sphincs_sha256_256s_robust_avx2 + PQCLEAN_SPHINCSSHA256256SROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHA256_256S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/address.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/address.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/api.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/params.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robustx8.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robustx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robustx8.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thash_sha256_robustx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256s-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..5c223f36 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_256S_ROBUST + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_256s_robust_clean + PQCLEAN_SPHINCSSHA256256SROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_256S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/address.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/address.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/address.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/address.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/api.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/api.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/fors.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/fors.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/hash.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/params.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/params.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/sign.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/thash.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/thash_sha256_robust.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/thash_sha256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/thash_sha256_robust.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/thash_sha256_robust.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/utils.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/utils.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/wots.c b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/wots.h b/src/sign/sphincs/sphincs-sha256-256s-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-robust/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-256s-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..58af9200 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/CMakeLists.txt @@ -0,0 +1,19 @@ +set( + SRC_AVX2_SPHINCS_SHA256_256S_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c + hash_sha256x8.c + sha256avx.c + sha256x8.c + thash_sha256_simplex8.c + utilsx8.c) + +define_sig_alg( + sphincs_sha256_256s_simple_avx2 + PQCLEAN_SPHINCSSHA256256SSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHA256_256S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/address.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/address.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/address.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/address.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/api.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/api.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256x8.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hashx8.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/hashx8.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/hashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/params.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/params.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256avx.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sha256x8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sign.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thash.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simplex8.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simplex8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simplex8.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thash_sha256_simplex8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thashx8.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thashx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/thashx8.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/thashx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/utilsx8.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.c b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.h b/src/sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-sha256-256s-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..b3abd2a4 --- /dev/null +++ b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHA256_256S_SIMPLE + address.c + fors.c + hash_sha256.c + sha256.c + sign.c + thash_sha256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_sha256_256s_simple_clean + PQCLEAN_SPHINCSSHA256256SSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHA256_256S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/address.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/address.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/address.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/address.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/api.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/api.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/fors.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/fors.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/fors.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/fors.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/hash.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/hash.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/hash_sha256.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/hash_sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/hash_sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/hash_sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/params.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/params.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/sha256.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/sign.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/sign.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/thash.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/thash.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/thash_sha256_simple.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/thash_sha256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/thash_sha256_simple.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/thash_sha256_simple.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/utils.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/utils.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/utils.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/utils.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/wots.c b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/wots.c rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/wots.h b/src/sign/sphincs/sphincs-sha256-256s-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-sha256-256s-simple/clean/wots.h rename to src/sign/sphincs/sphincs-sha256-256s-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..61b84c1e --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_128F_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_robustx4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_128f_robust_avx2 + PQCLEAN_SPHINCSSHAKE256128FROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_128F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/address.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/address.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/api.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/params.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robustx4.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robustx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robustx4.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thash_shake256_robustx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128f-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..8933c949 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_128F_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_128f_robust_clean + PQCLEAN_SPHINCSSHAKE256128FROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_128F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/address.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/address.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/address.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/address.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/api.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/api.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/fors.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/fors.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/hash.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/params.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/params.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/sign.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/thash.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/utils.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/utils.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/wots.c b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/wots.h b/src/sign/sphincs/sphincs-shake256-128f-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-robust/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-128f-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..392599b0 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_128F_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_simplex4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_128f_simple_avx2 + PQCLEAN_SPHINCSSHAKE256128FSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_128F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/address.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/address.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/api.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/params.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simplex4.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simplex4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simplex4.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thash_shake256_simplex4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128f-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..c0118c8b --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_128F_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_128f_simple_clean + PQCLEAN_SPHINCSSHAKE256128FSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_128F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/address.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/address.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/address.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/address.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/api.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/api.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/fors.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/fors.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/hash.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/params.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/params.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/sign.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/thash.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/utils.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/utils.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/wots.c b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/wots.h b/src/sign/sphincs/sphincs-shake256-128f-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128f-simple/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-128f-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..29fe01d2 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_128S_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_robustx4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_128s_robust_avx2 + PQCLEAN_SPHINCSSHAKE256128SROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_128S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/address.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/address.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/api.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/params.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robustx4.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robustx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robustx4.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thash_shake256_robustx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128s-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..56da4fdd --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_128S_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_128s_robust_clean + PQCLEAN_SPHINCSSHAKE256128SROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_128S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/address.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/address.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/address.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/address.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/api.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/api.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/fors.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/fors.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/hash.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/params.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/params.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/sign.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/thash.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/utils.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/utils.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/wots.c b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/wots.h b/src/sign/sphincs/sphincs-shake256-128s-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-robust/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-128s-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..4288ab7f --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_128S_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_simplex4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_128s_simple_avx2 + PQCLEAN_SPHINCSSHAKE256128SSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_128S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/address.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/address.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/api.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/params.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simplex4.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simplex4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simplex4.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thash_shake256_simplex4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-128s-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..9f75505e --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/CMakeLists.txt @@ -0,0 +1,14 @@ + +set( + SRC_CLEAN_SPHINCS_SHAKE256_128S_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_128s_simple_clean + PQCLEAN_SPHINCSSHAKE256128SSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_128S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/address.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/address.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/address.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/address.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/api.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/api.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/fors.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/fors.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/hash.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/params.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/params.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/sign.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/thash.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/utils.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/utils.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/wots.c b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/wots.h b/src/sign/sphincs/sphincs-shake256-128s-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-128s-simple/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-128s-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..bd17aa5c --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/CMakeLists.txt @@ -0,0 +1,17 @@ + +set( + SRC_AVX2_SPHINCS_SHAKE256_192F_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_robustx4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_192f_robust_avx2 + PQCLEAN_SPHINCSSHAKE256192FROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_192F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/address.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/address.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/api.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/params.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robustx4.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robustx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robustx4.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thash_shake256_robustx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192f-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..c08d26af --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_192F_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_192f_robust_clean + PQCLEAN_SPHINCSSHAKE256192FROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_192F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/address.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/address.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/address.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/address.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/api.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/api.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/fors.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/fors.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/hash.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/params.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/params.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/sign.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/thash.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/utils.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/utils.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/wots.c b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/wots.h b/src/sign/sphincs/sphincs-shake256-192f-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-robust/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-192f-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..0ae90de2 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_192F_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_simplex4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_192f_simple_avx2 + PQCLEAN_SPHINCSSHAKE256192FSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_192F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/address.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/address.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/api.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/params.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simplex4.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simplex4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simplex4.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thash_shake256_simplex4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192f-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..1bebe14c --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_192F_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_192f_simple_clean + PQCLEAN_SPHINCSSHAKE256192FSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_192F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/address.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/address.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/address.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/address.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/api.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/api.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/fors.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/fors.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/hash.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/params.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/params.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/sign.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/thash.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/utils.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/utils.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/wots.c b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/wots.h b/src/sign/sphincs/sphincs-shake256-192f-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192f-simple/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-192f-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..7715f925 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_192S_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_robustx4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_192s_robust_avx2 + PQCLEAN_SPHINCSSHAKE256192SROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_192S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/address.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/address.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/api.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/params.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robustx4.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robustx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robustx4.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thash_shake256_robustx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192s-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..c7f43e92 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_192S_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_192s_robust_clean + PQCLEAN_SPHINCSSHAKE256192SROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_192S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/address.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/address.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/address.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/address.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/api.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/api.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/fors.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/fors.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/hash.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/params.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/params.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/sign.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/thash.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/utils.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/utils.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/wots.c b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/wots.h b/src/sign/sphincs/sphincs-shake256-192s-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-robust/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-192s-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..374cde3c --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/CMakeLists.txt @@ -0,0 +1,17 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_192S_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_simplex4.c + utilsx4.c) + +define_sig_alg( + sphincs_shake256_192s_simple_avx2 + PQCLEAN_SPHINCSSHAKE256192SSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_192S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/address.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/address.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/api.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/params.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simplex4.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simplex4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simplex4.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thash_shake256_simplex4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-192s-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..bc8a053c --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_192S_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_192s_simple_clean + PQCLEAN_SPHINCSSHAKE256192SSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_192S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/address.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/address.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/address.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/address.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/api.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/api.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/fors.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/fors.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/hash.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/params.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/params.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/sign.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/thash.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/utils.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/utils.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/wots.c b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/wots.h b/src/sign/sphincs/sphincs-shake256-192s-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-192s-simple/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-192s-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..80b95b31 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_256F_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_robustx4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_256f_robust_avx2 + PQCLEAN_SPHINCSSHAKE256256FROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_256F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/address.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/address.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/api.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/params.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robustx4.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robustx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robustx4.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thash_shake256_robustx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256f-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..ee48d7e5 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_256F_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_256f_robust_clean + PQCLEAN_SPHINCSSHAKE256256FROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_256F_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/address.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/address.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/address.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/address.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/api.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/api.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/fors.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/fors.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/hash.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/params.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/params.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/sign.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/thash.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/utils.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/utils.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/wots.c b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/wots.h b/src/sign/sphincs/sphincs-shake256-256f-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-robust/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-256f-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..1312f7fd --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_256F_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_simplex4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_256f_simple_avx2 + PQCLEAN_SPHINCSSHAKE256256FSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_256F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/address.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/address.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/api.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/params.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simplex4.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simplex4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simplex4.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thash_shake256_simplex4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256f-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..ab3b7169 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_256F_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_256f_simple_clean + PQCLEAN_SPHINCSSHAKE256256FSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_256F_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/address.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/address.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/address.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/address.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/api.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/api.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/fors.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/fors.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/hash.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/params.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/params.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/sign.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/thash.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/utils.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/utils.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/wots.c b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/wots.h b/src/sign/sphincs/sphincs-shake256-256f-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256f-simple/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-256f-simple/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/CMakeLists.txt new file mode 100644 index 00000000..d49de97e --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/CMakeLists.txt @@ -0,0 +1,16 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_256S_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_robustx4.c + utilsx4.c) +define_sig_alg( + sphincs_shake256_256s_robust_avx2 + PQCLEAN_SPHINCSSHAKE256256SROBUST_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_256S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/address.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/address.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/api.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/params.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robustx4.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robustx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robustx4.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thash_shake256_robustx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256s-robust/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/CMakeLists.txt new file mode 100644 index 00000000..5fc3cbe6 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/CMakeLists.txt @@ -0,0 +1,13 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_256S_ROBUST + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_robust.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_256s_robust_clean + PQCLEAN_SPHINCSSHAKE256256SROBUST_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_256S_ROBUST}" "${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/address.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/address.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/address.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/address.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/api.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/api.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/fors.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/fors.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/hash.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/params.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/params.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/sign.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/thash.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/thash_shake256_robust.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/thash_shake256_robust.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/thash_shake256_robust.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/thash_shake256_robust.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/utils.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/utils.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/wots.c b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/wots.h b/src/sign/sphincs/sphincs-shake256-256s-robust/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-robust/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-256s-robust/clean/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/CMakeLists.txt new file mode 100644 index 00000000..7de953e8 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/CMakeLists.txt @@ -0,0 +1,18 @@ +set( + SRC_AVX2_SPHINCS_SHAKE256_256S_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c + fips202x4.c + hash_shake256x4.c + thash_shake256_simplex4.c + utilsx4.c) + +define_sig_alg( + sphincs_shake256_256s_simple_avx2 + PQCLEAN_SPHINCSSHAKE256256SSIMPLE_AVX2 "${SRC_AVX2_SPHINCS_SHAKE256_256S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") + diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/address.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/address.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/address.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/address.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/api.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/api.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fips202x4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256x4.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256x4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256x4.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_shake256x4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_state.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hashx4.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/hashx4.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/hashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/params.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/params.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/sign.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/sign.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thash.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thash.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simplex4.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simplex4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simplex4.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thash_shake256_simplex4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thashx4.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thashx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/thashx4.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/thashx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/utilsx4.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.c b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.h b/src/sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/avx2/wots.h diff --git a/src/sign/sphincs/sphincs-shake256-256s-simple/clean/CMakeLists.txt b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/CMakeLists.txt new file mode 100644 index 00000000..003673d6 --- /dev/null +++ b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/CMakeLists.txt @@ -0,0 +1,14 @@ +set( + SRC_CLEAN_SPHINCS_SHAKE256_256S_SIMPLE + address.c + fors.c + hash_shake256.c + sign.c + thash_shake256_simple.c + utils.c + wots.c) + +define_sig_alg( + sphincs_shake256_256s_simple_clean + PQCLEAN_SPHINCSSHAKE256256SSIMPLE_CLEAN "${SRC_CLEAN_SPHINCS_SHAKE256_256S_SIMPLE}" "${CMAKE_CURRENT_SOURCE_DIR}") + diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/address.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/address.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/address.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/address.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/address.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/address.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/address.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/address.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/api.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/api.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/api.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/api.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/fors.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/fors.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/fors.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/fors.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/fors.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/fors.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/fors.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/fors.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/hash.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/hash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/hash.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/hash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/hash_shake256.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/hash_shake256.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/hash_shake256.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/hash_shake256.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/hash_state.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/hash_state.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/hash_state.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/hash_state.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/params.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/params.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/params.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/params.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/sign.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/sign.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/sign.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/sign.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/thash.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/thash.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/thash.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/thash.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/thash_shake256_simple.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/thash_shake256_simple.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/thash_shake256_simple.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/thash_shake256_simple.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/utils.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/utils.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/utils.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/utils.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/utils.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/utils.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/utils.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/utils.h diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/wots.c b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/wots.c similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/wots.c rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/wots.c diff --git a/crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/wots.h b/src/sign/sphincs/sphincs-shake256-256s-simple/clean/wots.h similarity index 100% rename from crypto_sign/sphincs/sphincs-shake256-256s-simple/clean/wots.h rename to src/sign/sphincs/sphincs-shake256-256s-simple/clean/wots.h diff --git a/test/crypto_kem/functest.c b/test/kem/functest.c similarity index 100% rename from test/crypto_kem/functest.c rename to test/kem/functest.c diff --git a/test/crypto_kem/nistkat.c b/test/kem/nistkat.c similarity index 100% rename from test/crypto_kem/nistkat.c rename to test/kem/nistkat.c diff --git a/test/crypto_kem/printparams.c b/test/kem/printparams.c similarity index 100% rename from test/crypto_kem/printparams.c rename to test/kem/printparams.c diff --git a/test/crypto_kem/testvectors.c b/test/kem/testvectors.c similarity index 100% rename from test/crypto_kem/testvectors.c rename to test/kem/testvectors.c diff --git a/test/crypto_sign/functest.c b/test/sign/functest.c similarity index 100% rename from test/crypto_sign/functest.c rename to test/sign/functest.c diff --git a/test/crypto_sign/nistkat.c b/test/sign/nistkat.c similarity index 100% rename from test/crypto_sign/nistkat.c rename to test/sign/nistkat.c diff --git a/test/crypto_sign/printparams.c b/test/sign/printparams.c similarity index 100% rename from test/crypto_sign/printparams.c rename to test/sign/printparams.c diff --git a/test/crypto_sign/testvectors.c b/test/sign/testvectors.c similarity index 100% rename from test/crypto_sign/testvectors.c rename to test/sign/testvectors.c